在运行深度学习模型时,有时候会遇到 libstdc++.so.6 过低,导致 GLIBCXX_xxx.x.xx 无法找到,可以尝试使用如下方法解决。

查看当前 GLIBC 版本

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

通过上面命令可以查看当前系统默认安装的各个 GLIBC版本。

查找 MINICONDA 安装的版本

在 miniconda 的 lib 中安装的 libstdc++.so.6 版本一般会比系统版本高,但是,系统默认的版本没有链接到该版本。可以先查找 miniconda 安装的 libstdc++.so.6 版本

1
2
3
4
5
6
7
find / -name "libstdc++.so.6" -type f

# 输出结果大概如下
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/opt/conda/pkgs/libstdcxx-ng-11.2.0-h1234567_1/lib/libstdc++.so.6
/opt/conda/envs/py38/lib/libstdc++.so.6
/opt/conda/lib/libstdc++.so.6

切换版本

1
2
3
sudo unlink /usr/lib/x86_64-linux-gnu/libstdc++.so.6

sudo ln -s /opt/conda/lib/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

参考文献

  1. [最全方法解决libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found](https://blog.csdn.net/pp2373886592/article/details/132392621)