1. 程式人生 > >在CentOS 7.2下升級gcc編譯器的版本

在CentOS 7.2下升級gcc編譯器的版本

預設情況下,CentOS 7.2預裝的gcc版本是4.8.x,通過執行命令 gcc -v 可以看到,一般情況下這個版本的編譯器已經滿足需要了,但是某些特殊的時候為了支援C++更高的特性,需要對gcc編譯器的版本進行升級,比如安裝最新的Mariadb 10的時候,就需要使用高版本的gcc,具體升級過程如下:

  首先去官網下載gcc的高版本安裝包,映象列表是:https://gcc.gnu.org/mirrors.html 進入後選擇其中的映象站,下載gcc即可,我這裡要從4.8升級到4.9,所以這裡下載的版本是4.9.3 下載地址是:http://fr.mirror.babylon.network/gcc/releases/gcc-4.9.3/ 下載其中的包為:gcc-4.9.3.tar.bz2

  下載之後上傳至Linux準備安裝,如果此時直接進行編譯安裝,此時gcc會報出錯誤:configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. 也就是說安裝該版本的GCC 需要GMP 版本 >= 4.2 MPFR版本 >= 2.4.0 MPC版本 >= 0.8.0 這3個依賴缺一不可,並且這3個依賴之間也具有相互依賴關係,即gmp獨立安裝,mpfr依賴於gmp,mpc依賴於gmp和mpfr,雖然執行gcc目錄下的: ./contrib/download_prerequisites 可以解決依賴問題,但是一般國內下載速度比較慢,所以這裡手動安裝如下三個依賴:

  這三個依賴分別是:gmp,mpfr和mpc,下載地址分別如下:

    gmp:http://ftp.gnu.org/gnu/gmp/

    mpfr(GNU映象):http://ftp.gnu.org/gnu/mpfr/ 或者官網:http://www.mpfr.org/mpfr-current/

    mpc:http://ftp.gnu.org/gnu/mpc/

  三個軟體包具體版本分別是:gmp-5.0.1.tar.gz,mpfr-3.1.5.tar.gz,mpc-1.0.3.tar.gz

  首先安裝gmp,命令如下:

複製程式碼
tar -xvzf gmp-5.0.1.tar.gz
cd gmp-5.0.1/
mkdir temp
cd temp
/ ../configure --prefix=/usr/local/gmp-5.0.1 make make install
複製程式碼

  這樣就安裝好了,注意:編譯時建議指定安裝位置,以便後面載入依賴,這裡是/usr/local下

  然後安裝mpfr,命令如下:

複製程式碼
tar -xvzf mpfr-3.1.5.tar.gz
cd mpfr-3.1.5/
mkdir temp
cd temp/
../configure --prefix=/usr/local/mpfr-3.1.5 --with-gmp=/usr/local/gmp-5.0.1
make
make install
複製程式碼

  到這裡mpfr安裝完畢,並且必須新增--with-gmp匯入gmp依賴,如果不加這個引數也會安裝成功,但是後面安裝GCC會報一個內部依賴的錯誤,如果這裡不加會很麻煩,然後再安裝mpc,命令如下:

複製程式碼
tar -xvzf mpc-1.0.3.tar.gz
cd mpc-1.0.3/
mkdir temp
cd temp/
../configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5
make
make install
複製程式碼

  同樣一定要加上依賴的引數,現在mpc也安裝完畢,然後執行 vim /etc/profile 編輯環境變數配置檔案,直接在檔案最後新增一行下面的變數:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-1.0.3/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.5/lib

  上面的路徑要和實際安裝時編譯的路徑一致,儲存並退出後,執行 source /etc/profile 使環境變數生效

  最後就可以開始安裝gcc了,安裝過程如下:

tar -jxvf gcc-4.9.3.tar.bz2
cd gcc-4.9.3/
mkdir output
cd output/
../configure --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.3

  然後開始編譯並且安裝:

make -j4
make install

  make過程時間非常長,根據計算機配置不同,時間有所差別,一般來說半個小時到一個多小時都是正常的,因為gcc編譯器相對來說還是比較龐大的一個專案的,安裝成功之後執行 gcc -v 或者 gcc --version 檢視新的版本資訊如下:

  

  可以看到,新的gcc版本4.9.3已經生效了,現在gcc升級就完成了