【已解决】ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found (required

问题描述

        今天遇到这样一个问题

        具体问题描述如下:

Traceback (most recent call last):
  File "/media/visionx/monica/newproject/globetrotter/main.py", line 13, in <module>
    from torch.utils.tensorboard import SummaryWriter
  File "/home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/torch/utils/tensorboard/__init__.py", line 12, in <module>
    from .writer import FileWriter, SummaryWriter  # noqa: F401
  File "/home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/torch/utils/tensorboard/writer.py", line 9, in <module>
    from tensorboard.compat.proto.event_pb2 import SessionLog
  File "/home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/tensorboard/compat/proto/event_pb2.py", line 6, in <module>
    from google.protobuf import descriptor as _descriptor
  File "/home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/google/protobuf/descriptor.py", line 28, in <module>
    from google.protobuf.pyext import _message
ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/google/protobuf/pyext/_message.cpython-38-x86_64-linux-gnu.so)

原因分析和解决

        这个是什么原因呢?

        这个错误表明你的程序或库依赖的 libstdc++.so.6 版本太低,无法满足要求。要解决这个问题,有几种可能的方法:

  1. 更新系统或者安装新版本的 libstdc++.so.6:尝试更新你的系统或者手动安装新版本的 libstdc++.so.6 库。

  2. 更新或重新安装相关的库:尝试更新或重新安装与 libstdc++.so.6 相关的库,例如 google.protobuf

  3. 使用 conda 管理库的环境:如果你正在使用 conda 环境,你可以尝试创建一个新的 conda 环境并重新安装相关的库,以确保所有依赖项都被正确安装和配置。

  4. 尝试其他解决方案:如果以上方法都不起作用,你可能需要搜索并尝试其他用户报告的解决方案,或者在相关的论坛或社区寻求帮助。

        libstdc++.so.6是什么,作用是什么?

`libstdc++.so.6` 是 GNU C++ 标准库的动态链接库文件,用于 C++ 程序的运行时支持。它提供了许多标准 C++ 库函数和类的实现,例如字符串处理、容器、算法等。在 Linux 系统中,许多 C++ 程序都依赖于这个库文件。

作用包括但不限于:

1. 提供了许多标准 C++ 库函数和类的实现,使得 C++ 程序员能够方便地使用这些功能。
2. 在运行时为 C++ 程序提供了必要的支持,包括内存管理、异常处理等。
3. 为不同的 C++ 程序提供了共享的库函数,从而节省了存储空间和系统资源。
4. 允许 C++ 程序在不同的系统上进行移植和共享,只要相同版本的库文件可用。

因此,`libstdc++.so.6` 对于 Linux 系统上运行 C++ 程序是非常重要的。

        那说白了,就是一个和很多功能都相关的库函数!

        既然是缺少了,我们怎么解决呢? 
        1、先看一下自己的版本是什么?
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

        2、找到自己电脑其他环境中的最新版本

        记住:一定要最新的,否则还是会报错!我这里是6.0.32

        3、 用该库包替换
sudo cp /home/visionx/anaconda3/envs/sentibase/lib/libstdc++.so.6.0.32 /usr/lib/x86_64-linux-gnu/
         4、删除原来的链接
sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
        5、建立新的链接
 sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.32 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

         在此运行之前的命令即可运行成功

 /home/visionx/anaconda3/envs/globetrotter/bin/python /media/visionx/monica/newproject/globetrotter/main.py

相关链接

如何解决version `GLIBCXX_3.4.29‘ not found的问题_version `glibcxx_3.4.29' not found-CSDN博客文章浏览阅读3.9w次,点赞113次,收藏200次。解决version `GLIBCXX_3.4.29' not found的问题_version `glibcxx_3.4.29' not foundhttps://blog.csdn.net/weixin_39379635/article/details/129159713libstdc++.so.6: version `GLIBCXX_3.4.29' not found · pybind/pybind11 · Discussion #3453 · GitHublibstdc++.so.6: version `GLIBCXX_3.4.29' not foundicon-default.png?t=N7T8https://github.com/pybind/pybind11/discussions/3453

完结撒花

        所谓的生活,应该就是人生理想吧!

  • 31
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值