报错内容
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*"来查看当前系统中其它的同类型文件,找到一个版本比较高的,
随便选择的一个
3、找到一个版本高的
strings /home/lab118/anaconda3/envs/PaddleSeg-release-2.3/lib/libstdc++.so.6.0.29 | grep GLIBCXX
查看里面有GLIBCXX_3.4.29
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