libstdc++.so.6:version 'GLIBCXX_3.4.21' not found
阿新 • • 發佈:2018-11-14
安裝某IDE的時候遇到問題——
輸入指令
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
得到
emmm,確實沒有3.4.20和21的版本,需要升級gcc
理論上,我們得到高於3.4.21的版本均可
所以,我們可以下載一個較高的版本,推薦使用國內的連線,而不是GNU的官網上的(下載速度太慢了)
http://mirrors.hust.edu.cn/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2
下載完之後,解壓
tar -jxvf gcc-6.1.0.tar.bz2
進入gcc6.1.0的根目錄
cd / usr/home/Jason/Donwnloads/gcc-6.1.0
輸入
./contrib/download_prerequisites
這個檔案會幫我們配置好編譯gcc的所需檔案(比如makefiles),以及下載相關檔案,如果用的是國外的映象,可能會比較慢。
./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
然後開始編譯
make -j4
make install
其中-j4是對多核處理器的優化,如果不成功,可以用make,該過程比較漫長,可能要一個多小時。
安裝成功(中間沒有任何Error的提示),可以檢視以下安裝效果
gcc -v
然後開始升級libstdc++.so.6
先找到檔案位置
find / -name "libstdc++.so*"
找到其中一個能用的版本,進行替換lib64中的老的版本
cd /usr/lib64
sudo cp /home/Jason/Downloads/gcc-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 ./
刪除原來的軟連結
sudo rm -rf libstdc++.so.6
將預設庫的軟連結指向最新的動態庫
sudo ln -s libstdc++.so.6.0.22 libstdc++.so.6
最後檢視libstdc++的資訊
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
搞定了。