admin
发布于 2024-09-03 / 19 阅读
0

【生信圆桌x生信云服务器】如何解决 libstdc++.so.6 version `GLIBCXX_3.4.29‘ not found的问题

一报错症状

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

Error: /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)

如果你想查看视频,可访问:https://www.bilibili.com/video/BV13KH4egErz/

二.原因

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

三.解决方法

使用指令先看下系统目前都有哪些版本的 (我这里只到4.28,所以确定是缺少GLIBCXX_3.4.29)

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

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

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

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

# 检查看是否包含 3.4.29 这个版本 
strings /home/上图的路径/anaconda3/envs/tf2/lib/libstdc++.so.6.0.29 | grep GLIBCXX

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

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

# 复制
sudo cp /home/wuye/anaconda3/envs/tf2/lib/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/
# 删除之前链接 (你也可以用mv 代替 rm 命令)
sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
# 【或】备份 代替rm (推荐)
sudo vm /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6_backup
# 创建新的链接 【记得修改 6.0.29 看看自己是不是对应版本】
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

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

四.最后

还在用个人电脑计算和分析生信数据吗? 试试生信云服务器 快捷高效少走弯路 www.tebteb.cc 了解详情 优惠低至699