Linux升級安裝GCC G++ 6.2

版權聲明:來自http://furzoom.com/ 歡迎轉載,但請注明作者及出處。 https://blog.csdn.net/himayan46/article/details/53322510

使用yum安裝是不可能了,各大倉庫也沒有,只能自己編譯安裝了。

系統為CentOS 6.5,gcc為4.4.7

1 下載源代碼包

當前最新版為6.2:

wgethttp://ftp.gnu.org/gnu/gcc/gcc-6.2.0/gcc-6.2.0.tar.bz2

也可以自行下載其他版本http://ftp.gnu.org/gnu/gcc

2 解壓

tar jxf gcc-6.2.0.tar.bz2

3 下載編譯依賴

cd gcc-6.2.0

./contrib/download_prerequisites

經過漫長的等待,速度太慢了~

4 生成Makefile文件

先建一個編譯的目錄

mkdir gcc-build-6.2.0

cd gcc-build-6.2.0/

../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

5 編譯

make -j4

4表示使用4個核心,根據你的CPU來指定。也可不指定任何參數。

6 安裝

sudo make install

7 驗證

gcc -v

還有原來的版本,重啟后,再驗證OK

8 測試

寫個測試的程序測試一下:

g++ -std=c++11 -o testCpp11? testCpp11.cpp

順利編譯成功,執行./testCpp11提示:

./testCpp11: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./testCpp11)

./testCpp11: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./testCpp11)

./testCpp11: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./testCpp11)

看來動態庫并沒有更新。

9 更新動態庫

查看動態庫的版本:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

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

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_3.4.11

GLIBCXX_3.4.12

GLIBCXX_3.4.13

確實沒有更新,默認情況下,會安裝在如下目錄:

/usr/local/lib64/libstdc++.so.6.0.22

簡單了,將原來的庫替換為上面的就可以了:

rm -rf /usr/lib64/libstdc++.so.6

ln -s /usr/local/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6

然后再查看動態庫的版本:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

結果

GLIBCXX_3.4.22

這就是剛剛安裝的版本,再執行一下測試程序./testCpp11,成功!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容