【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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 出现这个错误是因为在编译过程中,需要找到版本为CXXABI_1.3.9的libstdc++.so.6动态库,但系统中只有较低版本的动态库。\[1\]这个问题的解决方法是更新libstdc++.so.6动态库。可以通过以下步骤来解决这个问题:首先,下载最新版本的libstdc++.so.6动态库,比如libstdc++.so.6.0.26。\[3\]然后,将下载的动态库复制到系统的/usr/lib64目录下。最后,使用软链接将libstdc++.so.6.0.26链接到libstdc++.so.6,以便系统可以找到并使用新的动态库。\[3\]这样就可以解决gcc编译报错的问题了。 #### 引用[.reference_title] - *1* *3* [Error: /lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found](https://blog.csdn.net/xiangzaixiansheng/article/details/131221887)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found (required by.............](https://blog.csdn.net/qq_35985044/article/details/128265302)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值