之前從沒有升級過GCC,一直用系統默認的GCC版本,最近在研究很久沒有用過的 C, 便有了升級GCC的想發,大體以下。 java
環境: CentOS-6.5-i386 , gcc-4.4.7 系統必須已經安裝有一個編譯器,由於 gcc 也是須要編譯的 c++
首先 gcc 編譯須要三個額外庫,下載並按照下面的順序安裝它們,以下:
1. gmp ftp://ftp.gnu.org/gnu/gmp
2. mpfr ftp://ftp.gnu.org/gnu/mpfr
3. mpc http://www.multiprecision.org/mpc ui
1. 編譯安裝 gmp
# tar -zxvf gmp-5.1.3.tar.gz
# cd gmp-5.1.3
# ./configure
# make && make install spa
2. 編譯安裝 mpfr
# tar -zxvf mpfr-3.1.2.tar.gz
# cd mpfr-3.1.2
# ./configure
# make && make install ip
3. 編譯安裝 mpc
# tar -zxvf mpc-1.0.tar.gz
# cd mpc-1.0
# ./configure
# make && make install ci
4.將下列動態連接庫文件複製或者作一個軟連接到 /lib 下,由於後面編譯安裝 gcc 的時候有可能找不到上面三個依賴庫的共享庫文件
/usr/local/lib/libmpc.so
/usr/local/lib/libmpc.so.3
/usr/local/lib/libmpfr.so
/usr/local/lib/libmpfr.so.4
/usr/local/lib/libgmp.so
/usr/local/lib/libgmp.so.10 編譯器
4. 編譯安裝 gcc
gcc 編譯參數說明:
--prefix //默認 gcc 的安裝目錄,CentOS-6.5 下面最好安裝到 /usr 下,否則可能會有問題
--enable-languages //指定 gcc 能編譯哪些語言的文件,每種語言用逗號分隔, 例如 c,c++,java
--disable-multilib //默認gcc 能在32位系統上將代碼編譯成64位程序,或者在64位系統上編譯成32位程序,若是加上這個編譯選項則表示關閉這個gcc的交叉編譯功能。 it
# tar -zxvf gcc-4.8.2.tar.gz
# cd gcc-4.8.2
# mkdir build
# cd build
# ../configure --prefix=/usr
# make && make install io
注意: 當 gmp、mpfr、mpc 編譯的時候是自定義指定的安裝路徑,在編譯 gcc 時須要加上下面的選項:
--with-mpc=MPC的安裝目錄
--with-mpfr=MPFR的安裝目錄
--with-gmp=GMP的安裝目錄 編譯