原因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 服務再測。。。應該可以了