如何解决version `GLIBCXX_3.4.29‘ not found的问题

夜溪兮 2024-06-22 16:07:03 阅读 72

首先,运行时出现的问题如下:

<code>ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/wuye/anaconda3/envs/tf2/lib/python3.8/site-packages/google/protobuf/pyext/_message.cpython-38-x86_64-linux-gnu.so)

在这里插入图片描述

这个是默认路径下的libstdc++.so.6缺少GLIBCXX_3.4.29,解决方法,如下所示:

(1)使用指令先看下系统目前都有哪些版本的

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

在这里插入图片描述

我这里只到3.28,所以确定是缺少GLIBCXX_3.4.29。

(2)来查看当前系统中其它的同类型文件,找到一个版本比较高的

<code>sudo find / -name "libstdc++.so.6*"

请添加图片描述

在这里插入图片描述

版本比较多,就选了一个版本较高的,我这里是3.4.29,使用之前的指令看看其是否包含需要的版本:

<code>strings /home/wuye/anaconda3/envs/tf2/lib/libstdc++.so.6.0.29 | grep GLIBCXX

在这里插入图片描述

可以看到有需要的版本,接下来就是建立新的链接到这个文件上

(3)复制到指定目录并建立新的链接

<code># 复制sudo cp /home/wuye/anaconda3/envs/tf2/lib/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/# 删除之前链接sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6# 创建新的链接sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

之后程序一般是能够成功运行的

【注意】有时候由于权限问题,我们需要查看它们的权限

ll /usr/lib/x86_64-linux-gnu/libstd*

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。