报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by............)

Linux上运行“.py”文件,或者在import torch过程中报错信息:

报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by............)-LMLPHP

或者类似这种类型的。

原因:gcc动态库版本过老

解决办法:

a. 查看动态库

strings /usr/lib64/libstdc++.so.6 | grep CXXABI

结果如下:

报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by............)-LMLPHP

ls -l /usr/lib/libstdc++.so.6

报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by............)-LMLPHP

b.执行以下命令,查找编译gcc时生成的最新动态库:(有时找不到最新的动态库,可以参考方案二)

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

报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by............)-LMLPHP

c. 将上面的最新目录复制到/usr/lib64/目录下:

cp /usr/local/src/gcc-6.3.0/gcc-build-6.3.0/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 /usr/lib64/

d. 将libstdc++.so.6连接到libstdc++.so.6.0.22上去:

cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.22 libstdc++.so.6

e. 默认动态库升级完成。重新运行以下命令检查动态库:

strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI'

报错信息ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by............)-LMLPHP

方案二:

进行到方案一中b时,如果找不到gcc中的最新的动态库,可以将anaconda3/lib 中的 最新的动态库---------

“ libstdc++.so.6.0.24” (可能有的版本不一样,只要是版本最新的即可) ,拷贝到“ /usr/lib64”目录下。

可以通过下面的命令,查看anaconda3/lib/libstdc++.so.6 中是否有 CXXABI_1.3.9

strings /anaconda3/lib/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_TM_1
CXXABI_FLOAT128

再将libstdc++.so.6连接到libstdc++.so.6.0.24上去。

参考链接:

https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/80150207

07-08 11:14