前提:保證舊版的gcc,g++存在! root用戶
1. 下載源碼和依賴包源碼:新建目錄bak
wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.3/gcc-4.9.3.tar.gz
#Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
wget http://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.gz
wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.0.tar.gz
$ ls bak/*.gz
bak/gcc-4.9.3.tar.gz bak/gmp-5.0.1.tar.gz bak/mpc-0.9.tar.gz bak/mpfr-3.1.0.tar.gz
2. 編譯
解壓tar包,並新建編譯目錄 t t1 t2 t3,分別進行以上源碼編譯
$ ls bak
t t1 t2 t3

cd t1 ../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1 make make install cd t2 ../mpfr-3.1.0/configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1 make make install cd t3 ../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 make make install #設置鏈接,在/etc/profile文件末尾加上,注意修改后運行#source /etc/profile 使其生效即可 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.0/lib cd t ../gcc-4.9.3/configure --prefix=/usr/local/gcc-4.9.3 --with-mpc=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --disable-multilib --enable-languages=c,c++ --enable-threads=posix --disable-checking make make install
3. 切換GCC到新版:
[root@localhost bin]# pwd
/usr/bin
[root@localhost bin]# mv gcc gcc-4.4.7
[root@localhost bin]# ln -s /usr/local/gcc-4.9.3/bin/gcc /usr/bin/gcc
[root@localhost bin]# mv g++ g++-4.4.7
[root@localhost bin]# ln -s /usr/local/gcc-4.9.3/bin/g++ /usr/bin/g++
4. ok,確認版本
gcc -v
g++ -v
----補充:
若可以聯網的話,有以下兩個參考,未測試過
1.下載供編譯需求的依賴項
參考文獻[1]中說:這個神奇的腳本文件會幫我們下載、配置、安裝依賴庫,可以節約我們大量的時間和精力。
cd gcc-4.9.3
./contrib/download_prerequisites
2. 編譯(注意:此步驟非常耗時)
make -j4
-j4選項是make對多核處理器的優化,如果不成功請使用 make,相關優化選項可以移步至參考文獻[2]。
如果報錯錯誤集中在 x86_64unknown-linux-gnu/32/libgcc 和 x86_64-unknown-linux-gnu/libgcc
根據參考文獻[3],安裝如下兩個軟件包(僅用於CentOS6.X):
yum -y install glibc-devel.i686 glibc-devel
1. 安裝靜態庫,如果沒有安裝靜態庫,后面編譯不會通過;
yum groupinstall "Development Tools"
yum install glibc-static libstdc++-static -y
yum -y install glibc-devel.i686 glibc-devel
4. 進入目錄;
cd gcc-x.x.x
5. 運行腳本download_prerequisites,此腳本會自動下載依賴庫;
./contrib/download_prerequisites
6. 新建臨時目錄,用於存放編譯過程中的臨時文件;
mkdir gcc-build
cd gcc-build
7. 配置編譯選項;
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
8. 編譯安裝,過程十分漫長,在我的小霸王上足足編了2個多小時;
make & make install