内网的linux服务器,libstdc++.so.6版本软链接到的6.0.28版本缺少GLIBCXX3.4.29的依赖,
然后从外网拷贝了一个6.0.29放在usr/lib64里配置好权限755,
然后运行程序发现缺少GLIBC_2.18,
但是6.0.29里存在GLIBC_2.18却不被识别
很疑惑
解决了,升级一下glibc的版本就ok了,因为系统的libc.so.6连接到的是2.17版本,确实没有GLCBC_2.18,跟libstdc++.so里的版本没关系,是我弄混了
是这个版本么,确认下路径什么有没有问题
今天在运行一个软件的时候报错:
/home/your_user_name/anaconda3/envs/you_env_name/lib/libstdc .so.6: version `GLIBCXX_3.4.22’ not found
参考以下两个帖子解决了问题:
https://blog.csdn.net/phdsky/article/details/84104769
https://blog.csdn.net/fengzhongluoleidehua/article/details/84618540
根据参考资料推断,可能是升级gcc时生成的动态库没有替换旧版本gcc的动态库所致。尝试检查当前运行程序所需的GLIBC版本是否已经存在,如果仍然缺少,则需要更新或替换动态库版本。
步骤如下: 1. 执行以下命令,检查当前所需的GLIBC版本是否存在于/usr/lib64目录下:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC 如果缺少的GLIBC版本已经存在,则需要更新或替换动态库版本。如果仍然缺少,则需要参考参考资料中提到的升级gcc生成的最新动态库,并将其复制到/usr/lib64目录下。
find / -name "libstdc++.so*" 将最新的动态库版本,例如libstdc++.so.6.0.21复制到/usr/lib64目录下:
cp /gcc-workspace/gcc-5.2.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64 修改系统默认动态库的指向,将其软连接重新指向最新动态库。切换工作目录至/usr/lib64:
cd /usr/lib64 删除原来软连接:
rm -rf libstdc++.so.6 将默认库的软连接指向最新动态库:
ln -s libstdc++.so.6.0.21 libstdc++.so.6 重新运行以下命令检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC 检查动态库版本是否已更新并指向正确版本。
如果仍然存在问题,则可能需要重新编译程序以适配新的GLIBC版本。如果尝试了以上步骤还不能解决问题,则需要进一步查找原因或使用其他解决方案。