/lib64/libstdc++.so.6: version `GLIBCXX_3.4.?' not found

1. 首先查看libstdc++.so.6支持了哪些GLIBCXX

# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

其次查看是否已经存在libstdc++.so.6.xx可以使用GLIBCXX

2. 先切到根目录查看当前系统支持哪些libstdc++

# cd /
# find . -name "libstdc++.so.6*"

3. 如果找到你需要的文件可以直接拷贝过去

# cp {你找到的文件} /usr/lib64

4. 然后删除原本的连接,并重新对你拷贝过来的文件进行连接,然后可以查看连接情况

# cd /usr/lib64
# libstdc++.so.6
# ln -s {拷贝过来的文件名} libstdc++.so.6"
# strings /usr/lib64/libstdc++.so.6 | grep GLIBC

一般来说libstdc++.so.6.0.xx默认支持到xx位,举个栗子

libstdc++.so.6.0.20意思就是说支持到GLIBC_3.4.20

所以看你系统需要支持到什么地步了,具体可以看下面的官网,有标注各个gcc版本支持到libstdc++.so.6.?

https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html

如果没有找到合适的对象可以接着往下看, 接下来需要升级gcc版本来支持,为了方便大家看,我剪切部分内容

对于GCC的升级适当就行,别升级太高,升级到你需要的版本即可

  • GCC 4.5.0: libstdc++.so.6.0.14

  • GCC 4.6.0: libstdc++.so.6.0.15

  • GCC 4.6.1: libstdc++.so.6.0.16

  • GCC 4.7.0: libstdc++.so.6.0.17

  • GCC 4.8.0: libstdc++.so.6.0.18

  • GCC 4.8.3: libstdc++.so.6.0.19

  • GCC 4.9.0: libstdc++.so.6.0.20

  • GCC 5.1.0: libstdc++.so.6.0.21

  • GCC 6.1.0: libstdc++.so.6.0.22

  • GCC 7.1.0: libstdc++.so.6.0.23

  • GCC 7.2.0: libstdc++.so.6.0.24

  • GCC 8.0.0: libstdc++.so.6.0.25

到你想要装的目录下创建文件夹,我这边举例子在home下,然后到http://ftp.gnu.org/gnu/gcc/找需要的版本,我这边举例4.9.2(因为我刚好缺这个版本)

# cd /home
# mkdir gcc
# cd gcc
# wget http://ftp.gnu.org/gnu/gcc/4.9.2/gcc-4.9.2.tar.bz2

解压压缩包,并进入解压目录

# tar -jxvf gcc-4.9.2.tar.bz2
# cd gcc-4.9.2

下载,配置,安装需要的依赖库

# ./contrib/download_prerequisites

创建编译目录并进去

# mkdir gcc-build-4.9.2
# cd gcc-build-4.9.2

生成Makefile,准备编译整个项目

# ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

编译gcc的源码,非常耗时,时间决定于你的机器的性能

# make

安装gcc

# make install

然后重启

# reboot

最后重复开头的2,3,4步骤,对libstdc++重新连接

参考地址:http://www.cjjjs.com/paper/czxt/2017222114137150.html

如果帮到你,请点个赞吧 O(∩_∩)O~

猜你喜欢

转载自blog.csdn.net/qq171563857/article/details/80924353