软件安装遇到 "/lib64/libstdc++.so.6: version `********' not found" 类似问题的解决方案

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found 为例

问题分析

  1. 该软件的默认gcc动态库是/lib64/libstdc++.so.6;gcc动态库没有更新,不满足当前软件的需求
  2. 需要修改编译时指定的库(或路径);编译时搜索动态库原理详见https://blog.csdn.net/mybelief321/article/details/9099659
  3. 因此在编译之前,在环境变量中添加满足条件的动态库路径即可$LD_LIBRARY_PATH

解决过程

1. 首先查看当前动态库的版本
$ strings /lib64/libstdc++.so.6 | grep GLIB #报错的动态库是 /lib64/libstdc++.so.6
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

果然/lib64/libstdc++.so.6中没有GLIBCXX_3.4.20

2. 修改环境变量

因为公共目录下的lib能满足要求,故在环境变量./~bash_profile中添加即可

$ vi ./~bash_profile
export LD_LIBRARY_PATH=/share/app/gcc/9.3.0/lib64:$LD_LIBRARY_PATH
#/share/app/gcc/9.3.0/lib64 这是我的公共目录!!!别照抄惹!!!

或者很多时候,如果安装了conda,conda的lib目录也会有比较新的gcc动态库的,可以自行检查。如:

$ strings /YourCondaPath/lib/libstdc++.so | grep GLIB
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20 #奏是它!!!!
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
...
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容