很多人在用CentOS 6.x系统编译工程,系统自带gcc版本为4.4,而有些项目需要gcc-4.8编译器,所以会涉及编译器升级问题。本人做项目时,不仅要升级gcc版本到4.8,还要求离线安装。经过大半天的调试,最后安装成功。看网上很多人在升级过程中遇到各种问题,一些我也遇到过,最后都顺利解决。现将我的整个升级过程整理出来,希望能给需要的人一点帮助。
这次我升级的gcc版本是4.8.2,gcc会依赖gmp、mpfr、mpc 库,且有版本要求,我这里使用的分别是gmp-5.1.3、mpfr-3.1.2、mpc-1.0.1,需要的可以去下面链接下载。
链接: https://pan.baidu.com/s/1kkDxaAGZR19jvUHn6LBNaQ 提取码: 24jk
========================安装依赖库==========================
首先安装gmp
解压程序包:tar -zxvf gmp-5.1.3.tar.gz
cd gmp-5.1.3
1)执行命令: ./configure
这里可以用prefix参数指定程序安装目录,如./configure --prefix=/usr/local/gmp-5.1.3 这样就可以把程序全部安装在这个目录下,不致于安装在很多地方。如果不用prefix参数,默认安装在/usr/local/bin /usr/local/lib /usr/local/include
2)执行命令:make
3)执行命令:make check
4)执行命令:make install
如果过程中有error,可打开config.log文件排错。这个文件记录的信息非常全,包含了安装过程中所必须的系统环境参数的诊断结果,遇到问题后,耐心分析这个文件,肯定可以找到原因的。
然后安装mpfr
解压程序包:tar -zxvf mpfr-3.1.2.tar.gz
cd mpfr-3.1.2
1)执行命令: ./configure
同样,如果需要指定安装目录,需要输入prefix参数。
需要注意的是,mpfr依赖于gmp,这也是要首先安装gmp的原因。如果gmp安装到特定目录(比如:/usr/local/gmp-5.1.3),这里一定要用with参数指定,如./configure --with-gmp-include=/usr/local/gmp-5.1.3/include --with-gmp-lib=/usr/local/gmp-5.1.3/lib
2)执行命令:make
3)执行命令:make check
4)执行命令:make install
同样,有问题可以通过分析config.log找原因。
最后安装mpc
解压程序包:tar -zxvf mpc-1.0.1.tar.gz
cd mpc-1.0.1
1)执行命令:./configure
2)执行命令:make
3)执行命令:make check
4)执行命令:make install
同样,有问题可以通过分析config.log找原因。
如果上面三个库安装在特定目录,在下一步安装gcc时一定要指定(--with-)。或者可以把库目录增加到环境变量中: vi /etc/profile
在文件后面添加代码 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:
执行 source /etc/profile 让环境变量生效。
========================安装gcc============================
安装gcc-4.8.2
解压程序包:tar -zxvf gcc-4.8.2.tar.gz
cd gcc-4.8.2
1)执行命令:./configure --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++
2)执行命令:make
这个过程比较长,打会儿农药吧……
如果有问题,去config.log找原因
3)执行命令:make install
安装成功!
我安装过程中遇到的问题是“cannot compute suffix of object files”这个报错的原因是找不到依赖库,检查下环境变量是否包含依赖库目录,或者在安装时,是否用prefix参数显示指定。
另外,以上是离线安装步骤,如果在线安装,用devtoolset工具吧,很方便。