Bug描述

今天主要解决一个 Bug:libstdc++.so.6: version GLIBCXX_3.4.29' not found

主要是和 libstc++版本问题相关,找了很多方法,其他很多方法都是直接修改libstc++.so的版本,但是直接修改这种可能被多个共享库依赖的库版本将会牵一发动全身引出很多问题,本着越复杂风险越大的原则,现提出最简单的解决方法。

Bug 总体描述如下:

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29’ not found (required by /home/hello/anaconda3/envs/eai/lib/python3.8/site-packages/scipy/spatial/_ckdtree.cpython-38-x86_64-linux-gnu.so)

可以看到libstc++.so是被 /home/hello/anaconda3/envs/eai/lib/python3.8/site-packages/scipy/spatial/_ckdtree.cpython-38-x86_64-linux-gnu.so所引用的,因此可以调到对应的文件夹查看

处理

# 这里你需要调整为自己文件库的路径
cd /home/hello/anaconda3/envs/eai/lib/python3.8/site-packages/scipy/spatial/

查看一下库的依赖

ldd _ckdtree.cpython-38-x86_64-linux-gnu.so

输出

linux-vdso.so.1 (0x00007ffc7dbd4000)
libstdc++.so.6 => /home/pgp/anaconda3/envs/eai/lib/python3.8/site-packages/scipy/spatial/./../../../../libstdc++.so.6 (0x00007fc143141000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc142da3000)
libgcc_s.so.1 => /home/pgp/anaconda3/envs/eai/lib/python3.8/site-packages/scipy/spatial/./../../../../libgcc_s.so.1 (0x00007fc14340d000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc142b84000)

然后直接去到=>指向的库的路径

/home/pgp/anaconda3/envs/eai/lib/python3.8/site-packages/scipy/spatial/./../../../../

查看一下绝对路径

pwd

输出

/home/pgp/anaconda3/envs/eai/lib

重点:利用export 添加路径

export LD_LIBRARY_PATH=/home/hello/anaconda3/envs/eai/lib:$LD_LIBRARY_PATH

持久export方法解决

注意:但是这是暂时有效的,即重开一个终端可能无效

方法1:将 lib 目录加到 /etc/ld.so.conf 中然后ldconfig

方法2:将export LD_LIBRARY_PATH=/home/hello/anaconda3/envs/eai/lib:$LD_LIBRARY_PATH

echo export LD_LIBRARY_PATH=/home/hello/anaconda3/envs/eai/lib:$LD_LIBRARY_PATH >> ~/.bashrc
source ~/.bashrc

参考:https://blog.csdn.net/u011029104/article/details/122966361

最后

我期间测试了很多的方法

  1. 修改libstdc++.so的版本:会导致对libc.so的版本又会有新的要求
  2. 用patchelf修改库的路径依赖,但是在我自己的电脑有效,但是在远程无效

总结&参考

越复杂风险越大,但是同样将上上面方法所需的参考资料也附上,万一对你们有用呢?

patchelf命令
https://blog.csdn.net/juluwangriyue/article/details/108617283

更新libstdc++.so版本
https://blog.csdn.net/bohrium/article/details/126546521
https://blog.csdn.net/jaber_chen/article/details/124715913
https://blog.csdn.net/qq_41905051/article/details/122707137

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐