下載安裝後 啓動的時候提示 GLIBCXX_3.4.15,發現libstdc++.so.6的版本過, linux
在安裝qt-creator的時候運行這個IDE就出現了這個問題,是因爲libstdc++.so.6的版本太低,須要下載個新的從新創建軟鏈接。 c++
我這裏是 更新裏 gcc 版本到 4.8 解決的,更新以後作裏連接 網絡
ln -s /usr/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6.18 ide
下面是詳細的解決過程 ui
1.【分析過程】 線程
linux 執行strings /usr/lib/libstdc++.so.6 | grep GLIBC
返回結果沒有GLIBCXX_3.4.15
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
執行ls -l /usr/lib/libstdc++.so.6
發現/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.12,其實這裏須要使用libstdc++.so.6.0.12
從網上下載這個文件,而後rm -rf /usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.12軟連接刪除,從新作
關鍵是 網上下載的不對或者 沒有找到,而後從新編譯GCC 4.8的版本 ip
2.【更新GCC】 ci
一、下載gcc 4.8.1源碼包: get
http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/gcc-4.8.1.tar.bz2 編譯器
我是虛擬機裏面裝的Linux,我嫌wget太慢,因此本身在Windows上用迅雷下好,而後共享到Linux中。
二、解壓:
tar -jxvf gcc-4.8.1.tar.bz2
三、下載編譯所需的依賴包:
這個步驟有兩種方式完成:
a) 若是Linux有網絡鏈接,直接這樣:
cd gcc-4.8.1
./contrib/download_prerequisites
cd ..
b) 若是Linux沒有網絡鏈接(我主機和虛擬機是Host-only,不能聯網,因此另外想辦法),則用Windows上網下載這幾個包:
ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz
有人問,必定要下載幾個版本嗎?下載最新的版本行不行?我沒試過,也不知道,我是按照gcc-4.8.1/contrib/download_prerequisites腳本里面的版本下載的。既然裏面已經說了這幾個版本,那我就嚴格按照它的要求來作。
而後解壓並移動到gcc-4.8.1下面:
tar -xjf gmp-4.3.2.tar.bz2
tar -xjf mpfr-2.4.2.tar.bz2
tar -xzf mpc-0.8.1.tar.gz
mv gmp-4.3.2 gcc-4.8.1/gmp
mv mpfr-2.4.2 gcc-4.8.1/mpfr
mv mpc-0.8.1 gcc-4.8.1/mpc
這樣的作法好處是,不用單獨編譯gmp、mpfr和mpc三個包,放在gcc源碼下面一塊兒編譯(事實上這也是gcc-4.8.1/contrib/download_prerequisites腳本的作法,我的感受更簡潔些)。
四、新建目錄用於存放編譯結果:
mkdir gcc-build-4.8.1
五、進入新目錄,並執行configure命令,產生makefile:
cd gcc-build-4.8.1
../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
具體選項很少解釋,你們能夠本身查看,我只用到c和c++,因此只編譯這兩種語言的編譯器。
六、編譯:
make -j4
我是i5四核,因此開4個線程同時編譯,要是有8核就更爽了~我在虛擬機裏面花了30分鐘不到的時間,不算太慢了。
七、安裝:
sudo make install
八、大功告成,檢查版本:
g++ --version
g++ (GCC) 4.8.1
3.【更新連接】
發現/usr/lib下的 libstdc++.so.6.0.12 沒有被更新,查找 結果得知 g++ make install 在 /usr/local/bin 目錄,
ln -s /usr/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6.18