/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

在执行程序出现这个问题有两种情况

原因1:已经安装过高版本但未软连接

解决方法:查找编译gcc时生成的最新动态库

find / -name "libstdc++.so*" 输出:

cd /usr/lib64
ll stdlibc++*

以看到当前libstdc++so.6指向13的版本,接下来把刚刚的高版本的复制到这里并重建软链即可

rm libstdc++.so.6

ln -s libstdc++.so.6.0.21 libstdc++.so.6

现在再执行就ok了!

原因2:版本低

解决方法:

  • 查看gcc版本中包含哪些库。

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

从网上下载高版本的libstdc++.so.6.0.13以上的版本,比如libstdc++.so.6.0.21。(或者从其它机器上拷贝一份)

cd /usr/lib64
ll stdlibc++*

cp ../libstdc++.so.6.0.21 .

rm libstdc++.so.6

ln -s libstdc++.so.6.0.21 libstdc++.so.6

 在查看发现已经升级

 再次执行发现已经没有问题了!

原文地址:https://www.cnblogs.com/xxd-qyr/p/11014491.html