ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found
运行detectron2训练代码时出错:libstdc++.so.6: version `GLIBCXX_3.4.20’ not found
一开始升级gcc,编译需要2小时最后还是没成功;后面我尝试了用conda install gcc.tar.bz2文件,它还是缺少链接;最后发现只是缺少一个GLIBCXX_3.4.20的包而已,我们下载好这个包即可。
最后的解决方法如下:
[root@localhost src]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
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_DEBUG_MESSAGE_LENGTH
发现少了GLIBCXX_3.4.20,解决方法是升级libstdc++.
[root@localhost ~]# yum provides libstdc++.so.6
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
libstdc+±4.8.5-11.el7.i686 : GNU Standard C++ Library
Repo : base
Matched from:
Provides : libstdc++.so.6
[root@localhost ~]# yum install libstdc+±4.8.5-11.el7.i686
1、从路径/usr/local/lib64拷贝文件libstdc++.so.6.0.20(或者更高版本,例如libstdc++.so.6.0.24)到路径/usr/lib64
2、删除/usr/lib64原来的软连接libstdc++.so.6 #强烈建议删除之前先备份一份
3、在路径/usr/lib64,打开终端命令行,输入ln命令,重新建立软连接ln libstdc++.so.6.0 libstdc++.so.6
4、重新执行strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
ok!
-----
参考文章:
解决/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14’ not found问题