原因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
在查看发现已经升级
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
链接: https://pan.baidu.com/s/1O29r8nNZXKFKO5-P8CRp4A
提取码: jmdp
上传文件到 /usr/lib64
cd /usr/lib64/
ln -s /usr/lib64/libstdc++.so.6.0.26 libstdc++.so.6
cd /lib64/
ln -s /usr/lib64/libstdc++.so.6.0.26 /lib64/
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
发现有 GLIBCXX_3.4.21
重新拉一次jar 服务再测。。。应该可以了