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

Linux上运行“.py”文件,报错信息:

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

原因:gcc动态库版本过老

最简单的方案:不需要Root权限

 
 vi  ~/.bash_profile 

在文件中添加如下代码

LD_LIBRARY_PATH=/home/feng/anaconda3/lib:$LD_LIBRARY_PATH     (将anaconda3库文件路径添加到系统的库文件路径中
export LD_LIBRARY_PATH
$ source  ~/.bash_profile


下面两个方案,需要Root权限。

方案一:

a. 查看动态库
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
结果如下:
 
    
  1. CXXABI_1.3
  2. CXXABI_1.3.1
  3. CXXABI_1.3.2
  4. CXXABI_1.3.3
发现最高版本只有1.3.3,没有1.3.9的。 说明出现这些问题,是因为升级 gcc 时,生成的动态库没有替换老版本 gcc 的动态库。

ls -l /usr/lib/libstdc++.so.6
 
     
  1. lrwxrwxrwx. 1 root root 19 Apr 7 17:57 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.13
我们发现libstdc++.so.6是个软连接,是连接到libstdc++.so.6.0.13上的,而libstdc++.so.6.0.13是老版本的动态库。所以下面我们要做的就是将libstdc++.so.6连接到新版本的动态库上去。

b.  执行以下命令,查找编译 gcc 时生成的最新动态库:(有时找不到最新的动态库,可以参考方案二
 
  
  1. find / -name "libstdc++.so.*"
结果如下:
 
   
  1. /usr/local/src/gcc-6.3.0/gcc-build-6.3.0/prev-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22
  2. /usr/local/src/gcc-6.3.0/gcc-build-6.3.0/prev-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
  3. /usr/local/src/gcc-6.3.0/gcc-build-6.3.0/stage1-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22
  4. /usr/local/src/gcc-6.3.0/gcc-build-6.3.0/stage1-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
  5. /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
  6. /usr/local/src/gcc-6.3.0/gcc-build-6.3.0/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
  7. /usr/local/lib/libstdc++.so.6.0.22
  8. /usr/local/lib/libstdc++.so.6.0.22-gdb.py
  9. /usr/local/lib/libstdc++.so.6
  10. /usr/lib/libstdc++.so.6.0.13
  11. /usr/lib/libstdc++.so.6
其中/usr/local/src/gcc-build-6.3.0是我们升级gcc时的输出目录,libstdc++.so.6.0.22就是我们的新版本的动态库。

c. 将上面的最新目录复制到/usr/lib64/目录下:
 
   
  1. 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上去:
 
    
  1. cd /usr/lib64
  2. rm -rf libstdc++.so.6
  3. ln -s libstdc++.so.6.0.22 libstdc++.so.6

e.  默认动态库升级完成。重新运行以下命令检查动态库:
 
   
  1. strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI'
结果如下:
 
   
  1. CXXABI_1.3
  2. CXXABI_1.3.1
  3. CXXABI_1.3.2
  4. CXXABI_1.3.3
  5. CXXABI_1.3.4
  6. CXXABI_1.3.5
  7. CXXABI_1.3.6
  8. CXXABI_1.3.7
  9. CXXABI_1.3.8
  10. CXXABI_1.3.9
  11. CXXABI_1.3.10
  12. CXXABI_TM_1
  13. CXXABI_FLOAT128
可看到确实是连接到新的动态库上去了。完成!

方案二:

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

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

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

  1. strings /anaconda3/lib/libstdc++.so.6 | grep 'CXXABI'
  1. CXXABI_1.3
  2. CXXABI_1.3.1
  3. CXXABI_1.3.2
  4. CXXABI_1.3.3
  5. CXXABI_1.3.4
  6. CXXABI_1.3.5
  7. CXXABI_1.3.6
  8. CXXABI_1.3.7
  9. CXXABI_1.3.8
  10. CXXABI_1.3.9
  11. CXXABI_1.3.10
  12. CXXABI_TM_1
  13. CXXABI_FLOAT128

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


  • 46
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
回答: 出现这个错误是因为在编译过程中,需要找到版本为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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值