CentOS升级GCC到GCC4.8.2


服务器上安装的GCC版本过旧,不足以满足个人使用的版本需求,故决定对其进行升级操作,由当前版本3.4.6升级到4.8.2,受权限制约,只能安装到个人指定目录,因此如果您的服务器可以连接外网,并且有root或者sudo权限的话,可以使用自助安装服务,您可以跳过本文,节省宝贵时间吧。

所谓“工欲善其事必先利其器”,在权限受限,并不能连接外网的情况下,操作Linux的安装着实蛋疼,可没办法,麻烦归麻烦,结果是好的。

准备好GCC的压缩包gcc-4.8.2.tar.gz(105MB左右)后不再啰嗦,进入主题:

1、查看系统环境和gcc版本,执行命令:

$lsb_realease -a

$gcc -v

2、解压gcc-4.8.2.tar.gz到当前目录下

$tar -zvxf gcc-4.8.2.tar.gz

3、进入gcc目录,查看编译需要的依赖文件

$cd gcc-4.8.2/

$vim ./contrib/download_prerequisites

\

4、根据上述地址,分别下载mpfr/gmp/mpc三个文件,并解压安装。由于mpc依赖于mpfr和gmp,mpfr依赖于gmp,故安装顺序依次为gmp、mpfr、mpc。

gmp-4.3.2.tar.bz2

mpfr-2.4.2.tar.bz2

mpc-0.8.1.tar.gz

5、编译安装gmp

$tar -jvxf ~/gmp-4.3.2.tar.bz2

$cd gmp-4.3.2

$./configure --prefix=~/gcclib/gmp432(自定义配置路径)

$make && make install

6、编译安装mpfr

$tar -jxvf ~/mpfr-2.4.2.tar.bz2

$cd mpfr-2.4.2/

$./configure --prefix=~/gcclib/mpfr242 --with-gmp=~/gcclib/gmp432/ (依赖于gmp)

$make && make install

7、编译安装mpc

$tar -zxvf ~/mpc-0.8.1.tar.gz

$cd mpc-0.8.1/

$./configure --prefix=~/gcclib/mpc081 --with-gmp=~/gcclib/gmp432/ --with-mpfr=~/gcclib/mpfr242/ (依赖于gmp与mpfr)

$make && make install

8、编译安装gcc

$tar -zvxf ~/gcc-4.8.2.tar.gz

$cd gcc-4.8.2

$./configure --prefix=~/gcc482 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=~/gcclib/gmp432/ --with-mpfr=~/gcclib/mpfr242/ --with-mpc=~/gcclib/mpc081/(注意千万不要拼写错误,我在这吃了很多亏,导致浪费很多时间,拼写错误,会报各种错误,然后解决掉还有,反反复复,最终发现自己参数写错了,如"multilib"误写成"mutilib",--enable与--disable的参数你就按照我这样写,没错,后面的--with指定你自己的路径)

$如果你觉得此时你可以在执行"make"命令的话,那你会相当的痛苦,默认安装的话,所有的lib共享库都会被放到系统目录下如64位的/usr/lib64/,而我们手动指定目录的形式,系统在编译构建的时候是找不到的,就是说GCC找不到之前我们安装的三个lib库,so我们这样做,即使没权限的话,可以建立全局的临时路径。

$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/gcclib/gmp432/lib:~/gcclib/mpfr242/lib:~/gcclib/mpc081/lib(保证原有的参数正确,加上新的共享路径,用冒号分隔)

$make(别傻等在屏幕前,听哥一句劝,这个过程的时间你可以欣赏一Hollywood大片啦,至少1.5小时,当然如果你的服务器牛逼的不行超级快请忽略)

$make install

$~/gcc482/bin/gcc -v (查看安装版本,验证是否安装成功)

9、Complete!

在安装过程中,遇到的奇葩问题不少于10个,这里没有记录,因为没有原图,说服力不够,而且记录比较麻烦,所以如果你在安装过程中遇到什么问题,仔细看看错误提示,谷歌一下,就很容易解决,当然特别欢迎你留言,很乐意帮你解决。

相关内容