前因:
- 问题:在调用别人的so时,出现了如下问题【GLIBCXX_3.4.20 not found】
- Unable to load shared library ‘libdbc.so’ or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20′ not found (required by libdbc.so) 这个提示已经比较明显了,是本地缺少重要的二进制Lib库文件。
解决:
- 
- 查看本地系统的 GLIBCXX_版本
 
  strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
版本列表
 1 GLIBCXX_3.4
 2 GLIBCXX_3.4.1
 3 GLIBCXX_3.4.2
 4 GLIBCXX_3.4.3
 5 GLIBCXX_3.4.4
 6 GLIBCXX_3.4.5
 7 GLIBCXX_3.4.6
 8 GLIBCXX_3.4.7
 9 GLIBCXX_3.4.8
10 GLIBCXX_3.4.9
11 GLIBCXX_3.4.10
12 GLIBCXX_3.4.11
13 GLIBCXX_3.4.12
14 GLIBCXX_3.4.13
15 GLIBCXX_3.4.14
16 GLIBCXX_3.4.15
17 GLIBCXX_3.4.16
18 GLIBCXX_3.4.17
19 GLIBCXX_3.4.18
20 GLIBCXX_3.4.19
21 GLIBCXX_DEBUG_MESSAGE_LENGTH
- 
- 进入文件夹下载存放下载包
 
  cd /usr/local/lib64
- 
- 下载最新版本的libstdc.so_.6.0.26
 
  sudo wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
- 
- 解压
 
  unzip libstdc.so_.6.0.26.zip
- 5.将下载的最新版本拷贝到 /usr/lib64
  cp libstdc++.so.6.0.26 /usr/lib64
- 
- 进入libstdc.so_.6所在的文件夹
 
 cd  /usr/lib64
- 
- 查看 /usr/lib64下libstdc++.so.6链接的版本
 
  ls -l | grep libstdc++
以下是结果:
1  lrwxrwxrwx.  1 root root          19 5月  18 2021 libstdc++.so.6 -> libstdc++.so.6.0.19
2  -rwxr-xr-x.  1 root root      995840 9月  30 2020 libstdc++.so.6.0.19
3  -rwxr-xr-x.  1 root root    13172960 4月  26 13:04 libstdc++.so.6.0.26
- 
- 删除之前先备份
 
  mv libstdc++.so.6 ~/libstdc++.so.6.bak
- 或者:
  sudo cp /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
- 
- 删除/usr/lib64原来的软连接libstdc++.so.6
 
  sudo rm libstdc++.so.6
- 
- 链接新的版本
 
  sudo ln -s libstdc++.so.6.0.26 libstdc++.so.6
- 
- 再次查看版本
 
  strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
成功结果截图:

参考:version `GLIBCXX_3.4.20′ not found 解决方法 – 简书 (jianshu.com)
本文来自博客园,作者:wangwangwangMax,转载请注明原文链接:https://www.cnblogs.com/wangwangwangMax/p/17356130.html






