ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

报错内容

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/lab118/anaconda3/envs/dynamic-master_2/lib/python3.9/site-packages/osgeo/../../../libgdal.so.32)

在ubuntu上运行多光谱图像语义分割项目时,需要安装gdal库,但是在pip与conda环境下都安装完成之后,都报错,其中上面这种错误是在conda环境中出错的。
大概意思就是/usr/lib/x86_64-linux-gnu/libstdc++.so.6这个东西没有这个版本version `GLIBCXX_3.4.29’ 。

解决步骤(已成功)

1、使用指令先看下目前都有哪些版本的

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

2、使用sudo find / -name "libstdc++.so.6*"来查看当前系统中其它的同类型文件,找到一个版本比较高的,
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found_第1张图片随便选择的一个

3、找到一个版本高的

strings /home/lab118/anaconda3/envs/PaddleSeg-release-2.3/lib/libstdc++.so.6.0.29 | grep GLIBCXX

查看里面有GLIBCXX_3.4.29
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found_第2张图片

4、复制

cp /home/lab118/anaconda3/envs/PaddleSeg-release-2.3/lib/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/

5、删除

sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6

6、重新链接

sudo ln -s /home/lab118/anaconda3/envs/PaddleSeg-release-2.3/lib/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

注意

如果因为操作不当,导致符号链接层数过多

too many levels of symbolic links

可以删除重新试一下

参考

解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22‘ not found:https://blog.csdn.net/qq_30653631/article/details/107620137

你可能感兴趣的:(linux,gnu,c++)