CentOS上编译更新gcc

发布于 2017-12-01  10 次阅读


一开始,并没有升级gcc的打算,因为这东西,代码多,编译起来对服务器压力很大时间也很久,但魔改bbr突然就无法使用旧版本的gcc编译(4.9.0以下均不可以)。没有办法,毕竟魔改bbr这种强悍的东西不能少,但yum安装的gcc都是4.4.7版本,无法编译魔改bbr。

那...就升级吧

 

一,安装gcc基本依赖的库

安装旧版本gcc和gcc++(坑爹还要自己编译自己)

 

yum install -y gcc gcc-c++

 

安装一些基本需要的东西

yum install -y glibc-static libstdc++-static wget make textinfo-tex flex zip libgcc.i686 glibc-devel.i686  (以上为x86_64的CentOS 6所需要的)

 

yum install -y glibc-static libstdc++-static wget make textinfo-tex flex zip libgcc.i386 glibc-devel.i386 (以上为x86_64的CentOS 5所需要的)

 

那么gcc所依赖的库基本安装完成

 

二,编译gcc

 

先从gcc官网下载源码包,我建议是4.9.4版本的,太高估计也不怎么好,以及要下载tar.bz2压缩包的!不要下载tar.gz,解压会比tar.bz2慢很多。

 

wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.bz2

 

解压

 

tar jxf gcc-4.9.4.tar.bz2

 

等一会,解压完成后,进入目录

 

cd gcc-4.9.4

 

 

执行一个gcc自带神奇的脚本,会自动安装gcc所依赖的库

输入以下命令

./contrib/download_prerequisites

 

接下来就是编译了

 

先建立一个文件夹放gcc编译文件

mkdir gcc-build

 

进入目录

cd gcc-build

 

生成make文件

注意,一定要绝对路径,你的gcc源码包放在什么位置就写什么,比如我刚刚是解压到了/root/gcc-4.9.4里(这么做主要是为了防止路径出错)

为了避免安装后系统里出现多个版本的 GCC,这里直接将编译安装的目录指定为 /usr,如果不指定 –prefix,则会默认安装到 /usr/local 下。

/root/gcc-4.9.4/configure --prefix=/usr

 

然后就是漫长的make了,可以开screen,睡醒后再执行make install,就可以了。

 

输入gcc -v

 

若看到4.9.4,那么说明升级成功了

 

三,尾语

 

编译gcc过程是非常非常漫长,这是取决于你的服务器或电脑能力,和io性能,有人半小时编译完了,有人三个小时都没编译完,总之,gcc能不编译安装就不编译安装,yum一键安装是真正爽!

 

 

 

Comments


生命,是一场永不止息的运动