报错信息:【运行tensorflow程序时报错】
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /.../miniforge3/lib/python3.12/site-packages/kiwisolver/_cext.cpython-312-x86_64-linux-gnu.so)
原因:系统上 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 版本太旧。
检测:终端运行 strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
解决方法:直接升级libc6 (可行)
在下面文件中添加一个高级版本系统的源,
sudo gedit /etc/apt/sources.list
文件末尾添加:
deb http://mirrors.aliyun.com/ubuntu/ jammy main
软件升级:
sudo apt update
sudo apt install libc6
再次strings
检测,成功更新版本。之后【注释掉该添加系统源】
。
错误方法 (复制高版本libstdc++.so.6)
弯路至系统级故障
复制系统中高版本的GLIBCXX到/usr/lib/x86_64-linux-gnu。
find / -name "libstdc++.so.6*"
复制高于29的libstdc++(GLIBCXX_3.4.29)到/usr/lib/x86_64-linux-gnu:
rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
cp /snap/core22/1981/usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu
再次检测:
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
但是此时ubuntu系统会出现兼容问题:
再次系统重启时报错:
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34’ not found
其他教程的坑: rm /lib/x86_64-linux-gnu/libc.so.6, 再拷贝libc.so.6…(大坑,千万别删除再复制高级别的libc.so.6),下篇会讲解该翻坑教程.