0.前言
一般linux操作系統(tǒng)默認(rèn)的gcc版本都比較低,例如centos7系統(tǒng)默認(rèn)的gcc版本為4.8.5。gcc是從4.7版本開始支持C++11的,4.8版本對C++11新特性的編譯支持還不夠完善,因此如果需要更好的體驗(yàn)C++11以及以上版本的新特性,需要升級(jí)gcc到一個(gè)較高的版本。
本文給出了linux系統(tǒng)中涉及國家gcc的操作步驟,供大家參考。
升級(jí)步驟可以大致分為下面四個(gè)步驟:
查看確認(rèn)原來的gcc版本
下載需要升級(jí)的gcc版本
下載新版本gcc需要的依賴
編譯并安裝gcc新版本
查看確認(rèn)gcc原來的版本
linux命令行中輸入:
gcc --version
可以看到顯示如下:
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright ? 2015 Free Software Foundation, Inc.
本程序是自由軟件;請參看源代碼的版權(quán)聲明。本軟件沒有任何擔(dān)保;
包括沒有適銷性和某一專用目的下的適用性擔(dān)保。
一般很多l(xiāng)inux系統(tǒng)默認(rèn)的gcc版本為4.8.5,該版本對C++11的支持還不夠完善,可以將版本升級(jí)到一個(gè)更高的版本。本文以升級(jí)到版本10.1.0為例。
下載需要升級(jí)的gcc版本并解壓
2.1下載gcc新版本
由于linux系統(tǒng)沒有外網(wǎng),本文給出的示例是先在windows系統(tǒng)上將gcc版本下載,然后上傳的linux系統(tǒng)中。
下載gcc新版本地址為:
http://ftp.gnu.org/gnu/gcc/
上面有很多gcc版本,需要自己需要的版本進(jìn)行下載即可。
本文以版本10.1.0為例,點(diǎn)擊紅色部分,下載文件gcc-10.1.0.tar.gz:

2.2 將gcc新版本上傳到linux系統(tǒng)并解壓
將下載好的gcc版本上傳到linux系統(tǒng)中。本文將版本放在目錄:
/opt2/test_other/debug_test/
進(jìn)入到/opt2/test_other/debug_test/目錄,將文件解壓到/usr/local目錄下面:
tar -zvxf gcc-10.1.0.tar.gz --directory=/usr/local/
解壓之后可以在/usr/local目錄下面看到解壓后的gcc目錄:

下載并gcc需要的依賴
3.1 查看gcc需要的依賴
cd 到gcc-10.1.0目錄下面,查看需要的依賴:
vim contrib/download_prerequisites
可以看到需要的依賴以及版本如下:

從上面看到一共有四個(gè)依賴:gmp、mpfr、mpc以及isl。
3.2 下載需要依賴
在安裝gcc新版本之前一定要先下載這幾個(gè)依賴(注意依賴的版本)。
依賴下載的地址:
https://gcc.gnu.org/pub/gcc/infrastructure/
下載好4個(gè)依賴之后,將文件上傳到linux系統(tǒng)的目錄/opt2/test_other/debug_test/下面。
3.3 將依賴解壓到目錄gcc-10.1.0
cd到/opt2/test_other/debug_test/目錄下面,用下面命令將gmp文件解壓到目錄gcc-10.1.0:
tar -jvxf gmp-6.1.0.tar.bz2 --directory=/usr/local/gcc-10.1.0/
用同樣的命令可以將isl-0.18.tar.bz2、mpfr-3.1.4.tar.bz2解壓到目錄gcc-10.1.0。
下面的命令將mpc-1.0.3.tar.gz解壓到目錄gcc-10.1.0:
tar -zvxf mpc-1.0.3.tar.gz --directory=/usr/local/gcc-10.1.0/
3.4 為新下載的依賴建立軟鏈接
cd到gcc-10.1.0目錄下面,依次執(zhí)行下面四個(gè)命令,為四個(gè)依賴創(chuàng)建軟鏈接:
ln -sf gmp-6.1.0 gmp
ln -sf isl-0.18 isl
ln -sf mpc-1.0.3 mpc
ln -sf mpfr-3.1.4 mpfr
在目錄gcc-10.1.0下面查看建立的軟連接:
ls -l | grep ^l
如果上面的軟連接建立成功,會(huì)看到下面四個(gè)鏈接文件,顯示如下:

編譯并安裝gcc
4.1 編譯并安裝
在目錄gcc-10.1.0下面依次執(zhí)行下面兩個(gè)命令:
mkdir build && cd build
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
如果上面的命令執(zhí)行正確,可以看到生成的makefile文件。上述命令執(zhí)行完成之后,build下面可以看到下面幾個(gè)文件:
config.log config.status Makefile serdep.tmp
注意在執(zhí)行上面的第二個(gè)configure命令時(shí),也可以通過prefix參數(shù)為新版本gcc指定安裝安裝目錄(如果沒有指定默認(rèn)為/usr/local/,這里本文沒有指定):
../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
然后在build目錄下面執(zhí)行的命令,編譯安裝gcc:
make -j4 && make install
該過程時(shí)間比較漫長,大約需要2小時(shí)以上,需要耐心等待。如果編譯安裝過程沒有報(bào)錯(cuò),最后一段打印大概是這樣:

4.2 更新gcc
上面的過程執(zhí)行完,如果你在linux命令行中輸入:gcc -version,你會(huì)發(fā)現(xiàn)顯示的還是原來的版本,這是因?yàn)間cc還沒有更新,執(zhí)行的還是原來的gcc命令。
原來的gcc命令位于目錄/usr/bin/gcc等目錄下面,為了不覆蓋原來的命令。將原來的相關(guān)內(nèi)容進(jìn)行備份處理,執(zhí)行如下命令:
mv /usr/bin/gcc /usr/bin/gcc485
mv /usr/bin/g++ /usr/bin/g++485
mv /usr/bin/c++ /usr/bin/c++485
mv /usr/bin/cc /usr/bin/cc485
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
安裝的gcc新版本位于/usr/local/bin目錄下面,需要為新版本gcc創(chuàng)建軟鏈接:
ln -s /usr/local/bin/gcc /usr/bin/gcc
ln -s /usr/local/bin/g++ /usr/bin/g++
ln -s /usr/local/bin/c++ /usr/bin/c++
ln -s /usr/local/bin/gcc /usr/bin/cc
ln -s /usr/local/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6
上面的步驟步驟完成之后,輸入gcc -v查看版本:

可以看到版本已經(jīng)變成安裝的最新版本10.1.0了,說明安裝成功。
【參考文章】
https://www.jb51.net/article/95974.htm
https://www.jb51.net/article/230581.htm
https://cloud.tencent.com/developer/article/1424725文章來源:http://www.zghlxwxcb.cn/news/detail-778440.html
https://blog.csdn.net/liyelool/article/details/118656509文章來源地址http://www.zghlxwxcb.cn/news/detail-778440.html
到了這里,關(guān)于linux升級(jí)gcc版本詳細(xì)教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!