1. 程式人生 > 其它 >CentOS7 手動編譯升級GCC至9.3.0

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