CentOS7 手動編譯升級GCC至9.3.0
1)下載GCC9.3.0原始碼並解壓
從GCC官方FTP下載地址可以看到GCC最新版本為9.3.0。由於官網下載速度慢,實際上用清華大學的映象站進行下載,程式碼如下:
wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz #考慮到安裝失敗的可能性,建立一個臨時資料夾來安裝GCC sudo mkdir /opt/tmp cd /opt/tmp #解壓安裝包到臨時資料夾裡 sudo tar -zxvf /home/paul/Downloads/gcc-9.3.0.tar.gz
我是通過迅雷直接下載:https://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz 然後上傳到伺服器
2)下載依賴檔案
cd gcc-9.3.0/ #下載gmp mpfr mpc等供編譯需求的依賴項 ./contrib/download_prerequisites
--------------------------------------------------------------------------------------------------------------------------------------
沒有出現錯誤可以略過以下操作
執行命令會出現如下的錯誤,可能原因是從清華大學映象下的安裝包有過改動,不能通過sha512驗證
gmp-6.1.0.tar.bz2: FAILED sha512sum: WARNING: 1 computed checksum did NOT match error: Cannot verify integrity of possibly corrupted file gmp-6.1.0.tar.bz2
檢視download_prerequisites原始碼後, 在gcc-9.3.0目錄下輸入以下命令:
#刪除上一命令安裝失敗產生的gmp壓縮包和目錄 rm gmp-6.1.0.tar.bz2 rm gmp-6.1.0 #加--noverify選項禁止邊下邊驗證 ./contrib/download_prerequisites --no-verify
--------------------------------------------------------------------------------------------------------------------------------------
3)建立預編譯目錄
mkdir build && cd build
4)設定編譯選項並編譯
../configure --prefix=/usr/local/gcc-9.3.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
–-enable-languages表示你要讓你的gcc支援哪些程式語言;
-–disable-multilib表示編譯器不編譯成其他平臺的可執行程式碼;
-–disable-checking表示生成的編譯器在編譯過程中不做額外檢查
–-enable-checking=xxx 表示編譯過程中增加XXX檢查
–prefix=/usr/local/gcc-9.3.0 指定安裝路徑
–enable-bootstrap 表示用第一次編譯生成的程式進行第二次編譯,然後用再次生成的程式進行第三次編譯,並且檢查比較第二次和第三次結果的正確性,也就是進行冗餘的編譯檢查工作。 非交叉編譯環境下,預設已經將該值設為 enable,可以不用顯示指定;交叉編譯環境下,需要顯示將其值設為 disable。
5)安裝
#編譯生成makefile檔案 make #安裝GCC sudo make install
6)安裝後的設定
#設定環境變數 touch /etc/profile.d/gcc.sh sudo chmod 777 /etc/profile.d/gcc.sh sudo echo -e '\nexport PATH=/usr/local/gcc-9.3.0/bin:$PATH\n' >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh #設定標頭檔案 sudo ln -sv /usr/local/gcc/include/ /usr/include/gcc #設定庫檔案 touch /etc/ld.so.conf.d/gcc.conf sudo chmod 777 /etc/ld.so.conf.d/gcc.conf sudo echo -e "/usr/local/gcc/lib64" >> /etc/ld.so.conf.d/gcc.conf #載入動態連線庫 sudo ldconfig -v ldconfig -p |grep gcc
7)測試版本號
#測試 gcc -v
敲入命令後,終端顯示如下文字,說明已成功安裝GCC9.3.0
Target: x86_64-pc-linux-gnu
Configured with: …/configure --prefix=/usr/local/gcc-9.3.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 9.3.0 (GCC)
原文地址:https://blog.csdn.net/pauljjf/article/details/105171154