【gcc】CentOS 7: libstdc++.so.6: version 'CXXABI_1.3.9' not found

一、问题背景

CentOS7.x由于 glicxx 库和 glic 库版本低,不能运行别的 CentOS 编译好的 C++ 程序

可通过strings /lib64/libc.so.6 | grep GLIBC_查看系统 GLIBC 支持的版本

可通过strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX查看系统 GLIBCXX 支持的版本

# ll  /usr/lib64/libstdc++.so.6

# strings /lib64/libc.so.6 | grep "^GLIBC_"

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

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

二、问题原因

CentOS为求稳定,其系统自带的 GLIBC 和 GLIBCXX 版本太低,软件编译时使用了较高版本,运行时不兼容导致。

GLIBC 是 GNU 发布的 C 运行库,GLIBC 是 Linux 系统中最底层的 API,几乎其它任何运行库都会依赖于GLIBC。

GLIBC 除了封装 Linux 操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。

很多 Linux 的基本命令,比如cp, rm, ll,ln等,都得依赖于它,如果操作错误或者升级失败会导致系统命令不能使用,严重的造成系统退出后无法重新进入,所以操作时候需要慎重!

三、解决方法

更新 GLIBC 和 GLIBCXX,修改/usr/lib64中libstdc++.so.6链接到新库即可(GLIBC 对应/lib64/libc.so.6)

方法很多,只要该库更新到最新即可:

1.可通过手动更新 GCC,下载并编译GCC,将 GCC 升级到一定版本,替换库文件

2.可以在 CSDN 搜一下这两个库,直接下载即可,不过要一点积分

将libstdc++.so.6.0.23拷贝至/usr/lib64目录下,然后将/usr/lib64目录下的libstdc++.so.6删掉,创建软链接

#  mv  libstdc++.so.6.0.23    /usr/lib64/

#  rm -rf  /usr/lib64/libstdc++.so.6

#  ln -s /usr/lib64/libstdc++.so.6.0.23  /usr/lib64/libstdc++.so.6

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

四、参考

Index of /gnu/glibc

http://ftp.gnu.org/gnu/glibc

Linux中的strings命令简介

https://blog.csdn.net/stpeace/article/details/46641069

CentOS 7: libstdc++.so.6: version `CXXABI_1.3.9' not found

https://stackoverflow.com/questions/48831881/centos-7-libstdc-so-6-version-cxxabi-1-3-9-not-found

https://stackoverflow.com/questions/20357033/usr-lib-x86-64-linux-gnu-libstdc-so-6-version-cxxabi-1-3-8-not-found

libstdc++.so.6: version `CXXABI_1.3.9' not found

http://www.voidcn.com/article/p-mhupgmas-bpt.html

CentOS7.x 错误:/usr/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found

https://msd.misuland.com/pd/2884250103256715284

解决Centos下libstdc++.so.6: version `GLIBCXX_版本号' not found 和 libc.so.6: version `GLIBC_版本号' not found

https://blog.csdn.net/zhenyuhe/article/details/86737328

猜你喜欢

转载自blog.csdn.net/michaelwoshi/article/details/94183966