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。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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文章来源地址https://www.toymoban.com/news/detail-789602.html

到了这里,关于ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    网上大多数解决办法是找到含有GLIBCXX_3.4.29的文件并把这一项复制过去,但有时因为电脑libstdc++6版本过低,甚至不包含这一项。这里选择直接更新相应的库,但不曾考虑和过去文件的兼容性问题 本人设备:ubuntu22.04 答案来源:https://stackoverflow.com/questions/65349875/where-can-i-find-

    2024年04月26日
    浏览(24)
  • 解决/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found问题

    网上有分析说调用的高版本的gcc,生成的动态库没有替换老版本gcc的动态库导致。因此需要把高版本的so文件复制到低版本的so文件目录下。如下分析: https://www.jianshu.com/p/6424807b7e20 但我报的错有点跟他们不太一样,我实在python的虚拟环境中执行的。我查看了虚拟环境中的s

    2024年02月17日
    浏览(44)
  • 【Error】ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

    参考文章:如何解决version `GLIBCXX_3.4.29‘ not found的问题 在 wsl ubuntu20.04 运行 yolov8 时,出现以下错误 根据提示是 /usr/lib/x86_64-linux-gnu 路径下的 libstdc++.so.6 缺少 GLIBCXX_3.4.29 首先输入以下指令查看,当前有哪些版本 可以看到,确实缺少了 GLIBCXX_3.4.29 查看系统下同类型文件,存在

    2024年02月16日
    浏览(34)
  • 【未解决】No rule to make target ‘/usr/lib/x86_64-linux-gnu/libGL.so‘

    测试ros自带的PCL1.8是否能用,网上找个测试代码,编译阶段报错: cmake .. -- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR)  ** WARNING ** io features related to ensenso will be disabled -- Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR)  ** WARNING ** io features related to davidSDK wi

    2024年02月12日
    浏览(31)
  • Ubuntu18.04升级GLIBC_2.29,解决ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29‘

    个人在搭配transformers环境(Ubuntu18.04),使用时出现如下报错: ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29’ not found (required by /home/xxxx/anaconda3/envs/xxxx/lib/python3.6/site-packages/tokenizers/tokenizers.cpython-36m-x86_64-linux-gnu.so) 分析上述报错,新版transformers的tokenizers需要2.29版本的

    2024年02月12日
    浏览(36)
  • 没有规则可制作目标“/usr/lib/x86_64-linux-gnu/

    在安装pangolin依赖库的时候,系统提示如下的错误: 问题1: 问题2: 这是由于 动态链接库链接中断 造成的,所以我们重要的找到造成中断的原因。 你好!经过查阅网上出现的相似问题,总结我知道的三种原因: 终端中输入以下命令: 该文件夹下没有错误提示的这个文件

    2024年02月12日
    浏览(44)
  • Linux系统下cpython-37m-x86_64-linux-gnu.so文件ImportError

    ) 在查找答案的过程中遇到了几种回答,大多评论都表示有用 库的版本不兼容 多数遇到的是这种,但因为库比较难发现哪个不匹配等等原因,继续寻找其它回答…(当然,如果出现numpy或是pillow库的问题,还是及时解决比较好) 我运行的是UA-CMDet,如果有类似的可以作为简单

    2024年02月19日
    浏览(33)
  • 【问题解决】make[2]: *** 没有规则可制作目标“/usr/lib/x86_64-linux-gnu/libopencv_XXX错误

    记录一下使用ubuntu中的各种问题 make[2]: *** 没有规则可制作目标“/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2.0”,由“/home/victor/cooperate/ur5_husky/devel/lib/libmoveit_lazy_free_space_updater.so.1.1.13” 需求。 停止。 make[1]: *** [CMakeFiles/Makefile2:26268:moveit/moveit_ros/perception/lazy_free_space_updater/CMak

    2024年01月25日
    浏览(32)
  • /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found

    1.检查版本 strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC 解决办法 添加一个高级版本系统的源,直接升级libc6 1.打开源文件: sudo nano /etc/apt/sources.list 2.添加内容: deb http://th.archive.ubuntu.com/ubuntu jammy main 3.升级 sudo apt-get update sudo apt-get install libc6 如有疑问,请看原文链接:原文链接

    2024年04月13日
    浏览(28)
  • linux系统上nodejs 报错:node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27‘ not found

    原因:因为当前系统不支持GLIBC_2.27,而且node的版本过高,但是后来降低了版本还是报这个错误,后来发现低版本的软链接在/usr/bin,而高版本的软链接在/usr/local/bin,一直使用了高版本所在的软链接 解决方法:删除/usr/local/bin中node的软链接,然后再安装一个比较低版本的no

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包