为了支持c++11,升级了gcc,在这里对升级的过程进行一个描述,希望对大家有所帮助。
系统:Red Hat Enterprise Linux Server release 5.8
升级的gcc版本:gcc-4.9.4.tar.gz
一、需要了解的内容:
1、gcc升级需要的依赖以下软件包:
isl-0.11.1.tar.gz http://isl.gforge.inria.fr/
mpc-1.0.3.tar.gz http://www.multiprecision.org/index.php?prog=mpc&page=download
cloog-0.18.1.tar.gz ftp://gcc.gnu.org/pub/gcc/infrastructure/
gmp-6.1.2.tar.bz2 https://gmplib.org/
mpfr-3.1.6.tar.gz http://www.mpfr.org/mpfr-current/#download
2、因mpc 依赖于gmp、mpfr 所有编译安装时要先安装gmp、mpfr。
可以按gmp、mpfr 、mpc、isl、cloog 的顺序(注:gcc自动下载安装时就是按这个顺序执行的)。
源码安装举例:
tar -xzv gmp-6.1.2.tar.bz2
cd gmp-6.1.2
./configure
sudo make
sudo make install
3、gcc 编译参数说明:
–prefix //默认 gcc 的安装目录
–enable-languages //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,java
–disable-multilib //默认gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。
4、在gcc解压下的目录有自动化脚本,帮助我们下载、配置、安装上述的依赖库./contrib/download_prerequisites。免除了自己下载和安装的麻烦。
二、正式安装gcc,root下:
tar -xzv gcc-4.9.4.tar.gz
cd gcc-4.9.4
./contrib/download_prerequisites 自动化脚本,下载依赖库
mkdir build
cd build
../configure –disable-multilib
sudo make
sudo make install
gcc编译时间很长,需要耐心等待编译完成。
如果不使用./contrib/download_prerequisites ,则需要自己手动安装上述需要的软件包。
注意: 当 gmp、mpfr、mpc 编译的时候是自定义指定的安装路径,在编译 gcc 时需要加上下面的选项:
–with-mpc=MPC的安装目录
–with-mpfr=MPFR的安装目录
–with-gmp=GMP的安装目录
例如:
./configure –with-mpfr=/usr/local/mpfr –with-gmp=/usr/local/gmp –with-mpc=/usr/local/mpc –with-mpfr-include=/usr/local/mpfr/include –with-mpfr-lib=/usr/local/mpfr/lib –with-gmp-lib=/usr/local/gmp/lib –with-gmp-include=/usr/local/gmp/include –with-mpc-lib=/usr/local/mpc/lib –with-mpc-inclue=/usr/local/mpc/include –with-isl-include=/usr/local/isl/include –with-isl-lib=/usr/local/isl/lib/ –with-cloog-include=/usr/local/cloog/include –with-cloog-lib=/usr/local/cloog/lib –enable-languages=c,c++ –enable-threads=posix –disable-multilib
安装完成后,gcc -v 查看安装版本。