1. 程式人生 > >libstdc++.so.6:version 'GLIBCXX_3.4.21' not found

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

安裝某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

在這裡插入圖片描述
搞定了。