背景介绍:
操作系统自带的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:华中科技大学开源镜像站