纵有疾风起
人生不言弃

ImportError lib64 libstdc++.so.6 version CXXABI 1.3.9 not found required by home anaconda

文章目录

1 现象:

ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/qtxu/anaconda3/lib/python3.6/site-packages/scipy/sparse/_sparsetools.cpython-36m-x86_64-linux-gnu.so)

2 解决方案

以下操作需要root权限:

  1. 查看动态库
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

发现最高版本只有1.3.7,没有1.3.9的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。

ls -l /usr/lib64/libstdc++.so.6
lrwxrwxrwx 1 root root 19 Sep 29  2019 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19

我们发现libstdc++.so.6是个软连接,是连接到libstdc++.so.6.0.19上的,而libstdc++.so.6.0.19是老版本的动态库。所以下面我们要做的就是将libstdc++.so.6连接到新版本的动态库上去。

  1. 执行以下命令,查找编译gcc时生成的最新动态库:
find / -name "libstdc++.so.*"

结果如下:其中,libstdc++.so.6.0.24·就是我们的新版本的动态库。

/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/local/hostguard/lib/libstdc++.so.6
/home/qtxu/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24
/home/qtxu/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/home/qtxu/anaconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24
/home/qtxu/anaconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/home/qtxu/anaconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/lib/libstdc++.so.6.0.24
/home/qtxu/anaconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/lib/libstdc++.so.6
/home/qtxu/anaconda3/lib/libstdc++.so.6.0.24
/home/qtxu/anaconda3/lib/libstdc++.so.6
  1. 将上面的最新目录复制到/usr/lib64/目录下:
cp /home/qtxu/anaconda3/lib/libstdc++.so.6.0.24 /usr/lib64/
  1. 将libstdc++.so.6连接到libstdc++.so.6.0.24上去:
cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.24 libstdc++.so.6
  1. 默认动态库升级完成。重新运行以下命令检查动态库:
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_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
CXXABI_TM_1
CXXABI_FLOAT128
CXXABI_1.3
CXXABI_1.3.11
CXXABI_1.3.2
CXXABI_1.3.6
CXXABI_FLOAT128
CXXABI_1.3.9
CXXABI_1.3.1
CXXABI_1.3.5
CXXABI_1.3.8
CXXABI_1.3.4
CXXABI_TM_1
CXXABI_1.3.7
CXXABI_1.3.10
CXXABI_1.3.3

可看到确实是连接到新的动态库1.3.11上去了。完成!

3 参考:

  • 《报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by…)》https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/80150207

原文链接:https://lookme.blog.csdn.net/article/details/106231035

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

未经允许不得转载:起风网 » ImportError lib64 libstdc++.so.6 version CXXABI 1.3.9 not found required by home anaconda
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录