【Python BUG】ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_X.X.X‘ not found

文章讲述了开发人员在将Python预测程序从一台Linux服务器移植到另一台凝思服务器时遇到的libstdc++版本问题,通过检查、定位缺失的CXXABI版本、找到并复制最新动态库以及创建软连接解决了报错。
摘要由CSDN通过智能技术生成

报错

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version
`CXXABI_1.3.9‘ not found

背景

开发的一个python预测程序(算法分析+应用服务),在原本的linux服务器下配置了开发环境,打包后在另一台凝思服务器解压,发现报错。

应该是linux系统之间存在差异,动态库缺失或者版本不对

解决方案

参考:

https://blog.csdn.net/bitcarmanlee/article/details/90242598

确认是否有对应版本:

cd /usr/lib/x86_64-linux-gnu
sudo strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI

确认确实缺失CXXABI_对应版本后

查找最新动态库

sudo find / -name "libstdc++.so.6*"

出现很多结果如下

/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
...
/home/leilei/anaconda2/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/home/leilei/anaconda2/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.25
...

选择最新的(最下面的)进行复制(复制到/usr/lib/x86_64-linux-gnu):

cp /home/leilei/anaconda2/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.25 /usr/lib/x86_64-linux-gnu/ 

先cd 进入/usr/lib/x86_64-linux-gnu

cd /usr/lib/x86_64-linux-gnu

删除原来的软连接

sudo rm -rf libstdc++.so.6

基于最新的动态库生成软连接

sudo ln -s libstdc++.so.6.0.25 libstdc++.so.6

查看现在的CXXABI

sudo strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep 'CXXABI'

总结

基本流程是:
检查缺陷——查询最新动态库并复制进软连接目录——删除原始软连接——基于最新动态库生成新的软链接——CXXABI随之安装到符合要求的版本

表象已经洞悉,其内在原理并不了解,但解决了报错,满足开发需求。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写代码的中青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值