前因
最近在编译leveldb时,碰到一个问题:GLIBCXX_3.4.20 not found, 这个提示已经比较明显了,是本地缺少重要的二进制LIB库文件。
本地的二进制文件一般在/usr/lib64
下面,因为我使用的是64位系统。
处理
查看本地系统的 GLIBCXX_版本
代码语言:javascript复制strings /usr/lib64/libstdc .so.6 | grep GLIBCXX
结果:
代码语言:javascript复制GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH
刚好到 3.4.19,就是没有 3.4.20
三种解决思路
1.在本机上找
如果找到的话,就可以直接使用
代码语言:javascript复制find / -name "libstdc .so*"
找到libstdc .so.6.0.25
这个包。
先备份原来的文件,如果新的组件有问题,就扑街了,再将找到的文件放入/usr/lib64
,重新建立软链接。
先备份原来的包,
mv libstdc .so.6 ~/libstdc .so.6.bak
ln -snf libstdc .so.6.0.25 libstdc .so.6
2.手动下载
系统中没有的话,只能自己下载了
代码语言:javascript复制wget https://adbin.top/packages/lib64.tar.gz
可以自动选择缺失部份: https://pkgs.org/download/libstdc .so.6
3.yum 安装缺失文件
代码语言:javascript复制sh-4.2# yum provides libstdc
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: download.cf.centos.org
* extras: download.cf.centos.org
* updates: download.cf.centos.org
No matches found