背景介紹:
操作系統自帶的gcc4.8.5版本過低,導致某些動態庫跟需求不符,故需升級到gcc5.3.0版本。
正文:
安裝依賴庫
GCC依賴於gmp 4.2+, mpfr 2.4+和mpc 0.8+,這里直接下載安裝最新的版本。
為了省事,所有的庫都直接裝到/usr/local目錄下的對應目錄。(不要在生產環境上這么干)
安裝gmp 6.0
1 wget https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2 2 tar xvf gmp-6.0.0a.tar.bz2 3 cd gmp-6.0.0 4 ./configure 5 make -j4 6 make check 7 make install
安裝mpfr 3.1.3
mpfr依賴於gmp。 wget http://www.mpfr.org/mpfr-current/mpfr-3.1.3.tar.bz2 tar xvf mpfr-3.1.3.tar.bz2 cd mpfr-3.1.3 ./configure --with-gmp-include=/usr/local/include \ --with-gmp-lib=/usr/local/lib make -j4 make check make install
安裝mpc 1.0.3
1 mpc依賴於gmp和mpfr。 2 wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz 3 tar xvf mpc-1.0.3.tar.gz 4 cd mpc-1.0.3 5 ./configure --with-mpfr-include=/usr/local/include \ 6 --with-mpfr-lib=/usr/local/lib \ 7 --with-gmp-include=/usr/local/include \ 8 --with-gmp-lib=/usr/local/lib 9 make -j4 10 make check 11 make install
安裝GCC
1 下載GCC並解壓。
2 3 wget ftp://ftp.gnu.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2 4 tar xvf gcc-5.2.0.tar.bz2 5 cd gcc-5.2.0 6 先unset若干個系統變量,以免出現某些宏找不到的情況。 7 8 unset CPLUS_INCLUDE_PATH LIBRARY_PATH 9 配置GCC 10 11 ./configure \ 12 --with-gmp-include=/usr/local/include \ 13 --with-gmp-lib=/usr/local/lib \ 14 --with-mpfr-include=/usr/local/include \ 15 --with-mpfr-lib=/usr/local/lib \ 16 --with-mpc-include=/usr/local/include \ 17 --with-mpc-lib=/usr/local/lib \ 18 --enable-languages=c,c++ \ 19 --enable-threads=posix \ 20 --disable-multilib21 22 然后make -j8,啟用多線程編譯。
測試
1 先安裝dejagnu: yum install dejagnu。 2 3 然后運行如下命令: 4 5 make -j8 check-gcc 6 查看測試結果: 7 8 ./contrib/test_summary
安裝
1 如果編譯順利通過,make install即可。 2 3 gcc和g++默認被安裝到/usr/local/bin目錄下,libgcc和libstdc++默認被安裝到/usr/local/lib64(x64)。 4 5 記得更下下動態庫緩存。 6 7 ldconfig
注意事項:
如果遇到wget下載鏈接失效的情況,可以自行到國內源下載。
這里我給個自己常用的mirror:華中科技大學開源鏡像站