/lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found

绝命一击 ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found

libstdc++.so.6 版本过低导致的

看看自己的 libstdc++.so.6 里是否包含了 CXXABI_1.3.8

# strings /usr/lib64/libstdc++.so.6 | grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1

果然没有。
注意,不一定是GCC版本过低,用SCL(关于scl https://linux.cn/article-6776-1.html ) 升级GCC毛用都没有,根本不能升级 libstdc++.so.6
所以我们要升级 libstdc++.so.6 ,顺便升级GCC。如果只升级GCC(通过scl)是无效的,因为gcc的版本高了,但是他的libstdc++是 require的 原来的 libstdc++.so.6

不信你看

# cat /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/libstdc++.so

/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
INPUT ( /usr/lib64/libstdc++.so.6 -lstdc++_nonshared )

所以蛋疼了吧???

只有一个解决方法就是重新编译GCC。

编译GCC

  1. 安装依赖库 yum install -y gmp-devel mpfr-devel libmpc-devel
  2. 下载源码包 ftp://ftp.gnu.org/gnu/gcc/gcc-9.2.0/
  3. 解压缩
  4. configure
  5. make (注意,这个非常耗时,加 -j4 的意思就是4线程编译。如果你有4核,就会占满,导致CPU打满,服务报警,所以看情况用,我是直接 nohup make & 然后回家睡觉 )

这批命令如下

sudo yum install gmp-devel mpfr-devel libmpc-devel -y
cd download
wget ftp://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.xz
xz -d gcc-9.2.0.tar.xz
tar -xf gcc-9.2.0.tar
cd gcc-9.2.0
./configure --disable-multilib --enable-languages=c,c++ --prefix=$HOME/local
make -j4
make -j install

安装完毕后,将新安装的路径加入到环境变量里。

export LD_LIBRARY_PATH=$HOME/local/lib64

可以在 ~/.bash_profile 里加上 PATH=$HOME/local/bin:$PATH
把local 放到前面,以防同时存在相同名称bin的时候,能调用本地的bin文件
LD_LIBRARY_PATH=$HOME/local/lib64 也加到 .base_profile里,可以方便以后使用。
done.

当出现"Error: /lib64/libstdc.so.6: version `CXXABI_1.3.8&#39; not found"的错误时,这通常表示您程序在使用某个函数时需要CXXABI_1.3.8版本的libstdc++.so.6动态链接库,但当前系统中缺少该版本的库。您可以通过以下步骤来解决这个问题: 1. 在终端中输入以下命令来检查当前系统中已安装的libstdc++.so.6库的版本: ``` strings /usr/lib64/libstdc++.so.6 | grep CXXABI ``` 如果输出结果中没有包含CXXABI_1.3.8,那么您需要更新或安装包含该版本的库。 2. 如果您已经有了包含CXXABI_1.3.8版本的libstdc++.so.6库,但它位于另一个目录下,您可以将该库复制到/lib64/目录下。您可以使用以下命令来完成复制: ``` cp /path/to/libstdc++.so.6 /lib64/ ``` 请将"/path/to/libstdc++.so.6"替换为实际库文件的路径。 3. 如果您没有找到包含CXXABI_1.3.8版本的libstdc++.so.6库,那么您可能需要升级或重新安装您的编译器,以获取所需的库文件。请根据您使用的编译器和操作系统进行相应的更新或重新安装。 请注意,这只是解决"Error: /lib64/libstdc.so.6: version `CXXABI_1.3.8&#39; not found"错误的其中一种方法。具体解决方法可能因您的系统配置和环境而有所不同。建议您在尝试解决问题之前备份重要文件,并确保您具备足够的系统管理员权限。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [libstdc++.so.6.0.26.tar](https://download.csdn.net/download/qq_16262989/12346370)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8not found (required by /opt/tool/...](https://blog.csdn.net/my__blog/article/details/123703024)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值