执行程序时报错:
libstdc++.so.6: version `GLIBCXX_3.4.21' not found
libstdc库版本过旧导致;
查看libstdc++.so.6信息
1.1 查看libstdc++.so.6位置
sudo find / -name libstdc++.so.6* #ls -l libstdc++.so*
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.24
现在动态库版本是libstdc++.so.6.0.19;还找到一个新版本的动态库
libstdc++.so.6.0.24;接下来我们可以使用新的动态库链接到libstdc++.so.6
1.2 查看libstdc++.so.6软链接
ls -l libstdc++.so*
lrwxrwxrwx 1 root root 19 Feb 14 2018 libstdc++.so.6 -> libstdc++.so.6.0.19
libstdc++.so.6现在版本是libstdc++.so.6.0.19
1.3 查看libstdc++.so.6链接包含的动态库,动态库中确实没有GLIBCXX_3.4.21
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6|grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
动态库中确实没有GLIBCXX_3.4.21
查看新版本libstdc
2.1 查看libstdc++.so.6.0.24 链接包含的动态库,有GLIBCXX_3.4.21
strings /home/labubuntu/miniconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24 | grep GLIBCXX
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
将libstdc++.so.6.0.24 链接到libstdc++.so.6
3.1 拷贝libstdc++.so.6.0.24
sudo cp /home/labubuntu/miniconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24 /usr/lib/x86_64-linux-gnu
3.2 删除软链接libstdc++.so.6
sudo rm libstdc++.so.6
3.3 建立新软链接libstdc++.so.6
sudo ln -s libstdc++.so.6.0.24 libstdc++.so.6
3.4 查看软链接libstdc++.so.6
ls -l libstdc++.so*
lrwxrwxrwx 1 root root 19 Nov 14 01:54 libstdc++.so.6 -> libstdc++.so.6.0.24
-rw-r--r-- 1 root root 979056 Nov 14 01:41 libstdc++.so.6.0.19