解决Centos下libstdc++.so.6: version `GLIBCXX_ 及ImportError: /lib64/libc.so.6: version `GLIBC_2.18'

2022-08-05 20:33:59 浏览数 (1)

从http://ftp.gnu.org/gnu/glibc/下载相应版本,如glibc-2.19.tar.gz(2.2*安装可能会有问题*** These critical programs are missing or too old: as GNU ld bison compiler)

安装

代码语言:javascript复制
$ mkdir build// 在glibc-2.19目录下建立build文件夹
$ cd build// 进入build目录
$ ../configure --prefix=/opt/glibc-2.19 // 配置glibc并设置当前glibc-2.19安装目录
$ make && make install// 编译安装glibc-2.19库

然后

http://ftp.de.debian.org/debian/pool/main/g/gcc-4.9/  选择自己需要的libstdc 版本。如 libstdc 6_4.9.2-10 deb8u1_amd64.deb(别问我为什么,6,7,8,9这些版本安装有问题,我太笨)

下载

wget http://ftp.de.debian.org/debian/pool/main/g/gcc-4.9/libstdc 6_4.9.2-10 deb8u1_amd64.deb

解压

代码语言:javascript复制
ar -x libstdc  6_4.9.2-10 deb8u1_amd64.deb
tar -xvf data.tar.xz

(图源见水印,因为博主忘了截图了,但是方法是亲身安装成功)

可以看到解压出来的文件中有一个libstdc .so.6.0.20,这正是我们需要的东西。接下来只要把它替换掉现有的低版本的库即可

代码语言:javascript复制
cd /usr/lib64
ll stdlibc  *

可以看到当前libstdc so.6指向13的版本,接下来把刚刚的高版本的复制到这里并重建软链即可

代码语言:javascript复制
cp ~/usr/lib/x86_64-linux-gnu/libstdc  .so.6.0.20 .
mv libstdc  .so.6 libstdc  .so.6.bak
ln -s libstdc  .so.6.0.20 libstdc  .so.6

0 人点赞