前因:
- 问题:在调用别人的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