在测试SparseTT算法时报错:
ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29` not found
进而打开/usr/lib/x86_64-linux-gnu
文件夹, 能够找到 libstdc++.so.6
,但是grep ‘GLIBCXX’ libstdc++.so.6
没有结果。
在~/.bashrc
文件中添加 export LD_LIBRARY_PATH=/data/users/wangying01/anaconda3/lib
后,source ~/.bashrc
,重启界面,报错会变成:
ImportError: /data/users/username/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /data/users/*username*/anaconda3/envs/*envs_name*/lib/python3.7/site-packages/matplotlib/_path.cpython-37m-x86_64-linux-gnu.so)
# *username* , *envs_name* 为指代
说明在/data/users/*username*/anaconda3/lib/libstdc++.so.6
中也没有 GLIBCXX_3.4.29
由于权限及系统原因,在root用户重新安装 libstdc++6,更新 libstdc++6均失败,同时遇到了
Failed to start OpenBSD Secure Shell server
的问题没有解决
最终通过参考文章debug成功:
-
在其他服务器中找到包含
GLIBCXX_3.4.29
的libstdc++.so.6
文件sudo strings anaconda3/lib/libstdc++.so.6 | grep GLIBC
能够找到
GLIBCXX_3.4.29
,所以这个libstdc++.so.6
文件是可以用的, -
查看可发现
libstdc++.so.6
是libstdc++.so.6.0.29
软连接得到的,所以复制libstdc++.so.6.0.29
到/data/users/*username*/anaconda3/lib/
中,删除之前的软连接,并重建软连接。rm -rf libstdc++.so rm -rf libstdc++.so.6 ln -s libstdc++.so.6.0.29 libstdc++.so ln -s libstdc++.so.6.0.29 libstdc++.so.6
完成!