Ubuntu系统anaconda报错version `GLIBCXX_3.4.30' not found

参考文章:

https://blog.csdn.net/zhu_charles/article/details/75914060

 

 

================================================

 

 

 

在anaconda中安装deepmind_lab模块,安装过程并没有报错,运行代码时报错:

 

 

具体错误信息:

/home/devil/anaconda3/envs/impala/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-13.so.1)

 

根据错误信息可以知道运行时调用C++标准库报错,显示的被调用的C++标准库地址为:

/home/devil/anaconda3/envs/impala/lib/libstdc++.so.6

也就是说在anaconda创建的python环境中默认调用的库地址首先是自身环境的lib路径,那么我们可以看看在当前系统中一共有多少个C++标准库libstdc++.so.6文件:

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

 

 

可以看到系统中C++标准库libstdc++.so.6文件有多个,基本是每个独立性较高的程序都在自己的环境路径下有个libstdc++.so.6文件,所以这样是因为不同的libstdc++.so.6文件可能内部的GLIBCXX版本并不相同,因此一些不需要从源码编译的软件就会采用这种方式,把符合自身版本需要的libstdc++.so.6文件放在自身的库路径下,这样在调用的时候会优先调用自身带有的libstdc++.so.6文件而不是系统自带的。

 

我们可以看下系统libstdc++.so.6文件中支持的GLIBCXX版本

strings  /usr/lib/x86_64-linux-gnu/libstdc++.so.6   | grep GLIBC

 

 

我们再看下anaconda环境下libstdc++.so.6文件中支持的GLIBCXX版本:

strings /home/devil/anaconda3/envs/impala/lib/libstdc++.so.6  | grep GLIBC

 

 

可以看到系统环境下 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 文件含有GLIBCXX_3.4.30版本,而anaconda环境下/usr/lib/x86_64-linux-gnu/libstdc++.so.6文件含有的最高版本为GLIBCXX_3.4.29,因此有了前面的报错。

 

查看anaconda环境下libstdc++.so.6的相关文件:

 

 

 

 

 

系统库路径下,libstdc++.so.6的相关文件:

 

 

 

 

可以看到我们只需要将anaconda环境中libstdc++.so和libstdc++.so.6的链接地址指向系统路径中的地址即可:

 

 

 

 

 

===================================================

 

 

再次运行:

 

 

 

不再报错,已经修复成功。

 

 

=============================================

 

posted on   Angry_Panda  阅读(7401)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示