首页 > C/C++编程 > centos 源码编译安装gcc 4.7.0

centos 源码编译安装gcc 4.7.0

2012年3月23日 发表评论 阅读评论

gcc官方网站 下载最新版本的gcc-4.7.0.tar.bz2
同时在infrastructure目录下寻找下载【必须】的cloog-0.16.2.tar.gz、mpc-0.8.1.tar.gz、mpfr-2.4.2.tar.bz2、ppl-0.11.tar.gz,去http://gmplib.org/ 下载最新的gmp-5.0.4.tar.bz2
开始前的注意事项:
【我是在CentOS 5.3 x64的虚拟机环境下实践的此文,推荐内存要大于2G,否则在编译一些模块时会出现因为物理内存耗光而死机的情况】

开始安装gcc 4.7.0,以下包的安装步骤不能错乱

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
tar jxvf gmp-5.0.4.tar.bz2
cd gmp-5.0.4
./configure --prefix=/usr/local/gmp-5.0.4 --build=x86_64-linux
make && make install
cd ../
 
tar jxvf mpfr-2.4.2.tar.bz2
cd mpfr-2.4.2
./configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-5.0.4
make && make install
cd ../
 
tar zxvf mpc-0.8.1.tar.gz
cd mpc-0.8.1
./configure --prefix=/usr/local/mpc-0.8.1  --with-gmp=/usr/local/gmp-5.0.4 --with-mpfr=/usr/local/mpfr-2.4.2
make && make install
cd ../

由于cloog-0.16.2是【isl-based version】,在gcc的./configure 时,使用–enable-cloog-backend=isl参数来指定cloog的后端为isl即可

1
2
3
4
5
6
7
8
9
10
11
tar zxvf ppl-0.11.tar.gz
cd ppl-0.11
./configure --prefix=/usr/local/pp1-0.11 --with-gmp=/usr/local/gmp-5.0.4
make && make install
cd ../
 
tar zxvf cloog-0.16.2.tar.gz
cd cloog-0.16.2
./configure --prefix=/usr/local/cloog-0.16.2 --with-gmp=/usr/local/gmp-5.0.4
make && make install
cd ../

安装gcc 4.7.0,此处的参数,只针对C、C++语言,如果需要其能编译出其他工具链(如all, ada, fortran, go, java, objc, obj-c++之类的),在enable-language后面添加上,然后添加上相应的参数就是

1
2
3
4
tar jxvf gcc-4.7.0.tar.bz2
cd gcc-4.7.0
./configure --with-gmp=/usr/local/gmp-5.0.4 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1 --enable-languages=c,c++ --enable-threads=posix --enable-__cxa_atexit --with-cpu=generic --disable-multilib --with-ppl=/usr/local/pp1-0.11 --with-cloog=/usr/local/cloog-0.16.2 --enable-cloog-backend=isl
make && make install

将以上四个库加入系统库路径,使用在/etc/ld.so.conf中添加或LD_LIBRARY_PATH环境变量中添加的方式
如在~/.bashrc中添加上下面语句

1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-5.0.4/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/mpc-0.8.1/lib:/usr/local/cloog-0.16.2/lib:/usr/local/ppl-0.11/lib

使用gcc -v即可查看到新安装的gcc版本已经变为4.7.0了,如下图

  1. Pingback: CentOS 5上编译安装 GCC

  2. 博主,你这种方法是系统中已有编译器才在第一步安装gmp时采用./configure安装吧.要是没有编译器也不能在线安装包的话,怎么才能先装上gmp和mpfr呢

      • 我的意思是有没有其他的安装途径呢,假如没有编译环境,使用RPM包能否安装这些东西?

        • 你可以去GNU官方找一下,看他们或者第三方有提供二进制安装包没有,如果有,就可以直接安装使用了,不用从源码编译安装了。

  3. ./configure –prefix=/usr/local/gmp-5.0.4
    改为
    ./configure –prefix=/usr/local/gmp-5.0.4 –enable-cxx

    • 我编译的时候,没有带这个参数,编译得到的g++是可以编译cpp源码的。搜索了一下,发现加上了–enable-cxx反而会引起一系列的问题,原因未知。