CentOS 6 编译GCC 4.8.1简明流程


之前讨论了很多关于编译gcc的事情,都源自于当年在CentOS6.2上编译gcc4.7.2的事情,简直苦不堪言。

今天工作需要又要用CentOS了,用于gcc只用了更严格的开源协议GPL v3的问题,CentOS官方所能提供的最新gcc版本只能到4.4,要使用新特性,必须手动编译新版本的gcc。

经过了几年的学习和积累,今天上午轻松通过了当初恶魔般的centos上gcc编译。

知识方面和配置选项含义方面的东西在我前几篇关于编译gcc的blog中有重复的介绍,这里主要讲操作步骤。

参考:

我所使用的系统是CentOS 6.4 64位版。

提醒:建议分配的硬盘空间大于10G,否则可能会出现编译时遭遇磁盘空间不足的问题。


编译步骤
1,安装gcc,g++

yum install gcc g++

2,安装静态glibc

yum install glibc-static

3,安装cloog和gmp开发版(因为需要手动编译isl)

yum install cloog-ppl gmp-devel

4,下载编译isl

(CentOS没有提过rpm包,需要手动下载。另外它不是gnu的项目,为了方便起见,可以直接在gcc的官方资源下载地址找ftp://gcc.gnu.org/pub/gcc/infrastructure/)

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.11.1.tar.bz2

tar xfj isl-0.11.1.tar.bz2

cd isl-0.11.1

./configure

make

make install

5,下载并解压gcc,创建编译用临时目录

假设下载到了当前目录,文件名为gcc-4.8.1.tar.bz2

tar xfj gcc-4.8.1.tar.bz2

cd gcc-4.8.1

mkdir build

5,下载gmp,mpfr,mpc源码

通过自带脚本一键搞定。

./contrib/download_prerequisites

其实gmp包可以不下载了;另外这3个项目都是gnu的,gnu镜像中都提供下载,如果在官方网站下载比较慢,可以修改脚本中的下载地址为国内的镜像,另外需要注意修改版本号为具体项目中的新版本号,因为download_prerequisites脚本中默认些的那些是最低要求,而有些旧版本项目维护方都已经不提过下载了。

6,配置gcc编译选项

cd build

../configure --prefix=/usr --enable-languages=c,c++ --disable-multilib

不推荐加"--program-suffix=-4.8.1",然后通过配置连接的方式共存两个版本的gcc。

7,编译安装

make -j4

make install

编译之后的事
在CentOS下/usr/bin/gcc不同于Ubuntu,前者是一个可执行的二进制文件,后者是一个连接,连接到已经安装的gcc版本如gcc-4.6.3,这一点可以用个调用ls -l来证实。

所以如果想要保留原来的gcc,就必须重命名它们,并且配置连接,这样操作比较复杂,而且4.4.7的版本不同于4.6,它已经很落后了,而且没有重大的调整,没有必要保留。

相关内容