首页 > 其他 > 详细

CentOS 6.6x64下编译gcc-4.7.4

时间:2016-01-24 16:45:53      阅读:198      评论:0      收藏:0      [点我收藏+]

最近使用老版本的gcc发现一些问题,于是想尝试升级。

看了一些教程之后进行尝试,发现各类教程均会有一些小问题,于是在此记录一下本人的过程。

编译过程中参考的文章有如下几篇,在此表示感谢: 

http://blog.csdn.net/dyllove98/article/details/8917485

http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/05/2199530.html

http://www.linuxidc.com/Linux/2015-01/112595.htm

好了,下面进入正题。

1、准备工作

到gcc官方ftp下载自己需要的gcc版本,我下载的版本是4.7.4,同时也下载了4.9.3和5.3.0。

http://ftp.gnu.org/gnu/gcc/

先下载一个4.7.4版本的bz2压缩包,下载完毕后解压:

$ tar -xf gcc-4.7.4.tar.bz2
$ cd gcc-4.7.4

 

2、编译依赖库

代码下载完毕后,编译gcc时需要一些依赖库,其中gmp、mpfr、mpc是比较关键的库。这三个库要依次安装下载,下载的方式比较简单,如下一行代码搞定。

./contrib/download_prerequisites

然后是编译这三个关键的库了(由于库的安装需要root权限,所以先切换到root权限):

(1)安装gmp4.3.2
# cd gmp
# ./configure --prefix=/usr/local/gmp
# make  (编译)
# make install  (执行安装)
(2)安装mpfr
# cd ../mpfr
# ./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp(注意配置的时候要把依赖关系选项加进去)
# make
# make  install
(3)安装mpc0.8.1
# cd ../mpc
# ./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
# make
# make install

  
 这里第3步的时候,可能会出现gmp库找不到的问题了,应该特别注意 --with命令前面是两个减法符号。

与此同时,如果仍然出现错误,建议设置一下环境变量 LD_LIBRARY_PATH,一个示例设置方法是在/etc/profile的最后,插入中间的几行代码,然后更新:

# vim /etc/profile
# LD_LIBRARY_PATH=/usr/local/gmp/lib:/usr/local/pfmr/lib:/usr/lib/mpc/lib:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
# source /etc/profile

   

3、编译gcc

注意这里直接在gcc的代码目录下进行configure,否则可能引起gmp库找不到等问题或者被提示需要执行 make distclean。

 为了加快编译速度,make命令后面,可以增加 -j16(数值16)表示线程数量,根据自己的机器设置,好一些的机器大概十五分钟可以编译完毕。

# ./configure --prefix=/usr/local/gcc-4.7.4 --enable-threads=posix --disable-multilib -enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc
# make -j16 
# make install

编译成功,没有什么错误提示,出现一些 Leaving directory的字样表明已经编译成功。

技术分享

然后执行 make install即可。

安装的目录如下:

# make install
# ls /usr/local/gcc-4.7.4/
bin  include  lib  lib64  libexec  share

 

4、默认gcc版本的设置

参考这篇文章进行默认gcc的设置: http://www.linuxidc.com/Linux/2012-10/72284.htm

首先,查看原来的gcc所在的路径:

$ witch gcc

我的系统上,上述命令显示:/usr/bin/gcc,即原来的gcc命令在/usr/bin目录下。

为了能让原有的gcc仍然使用,将gcc/g++重命名一下:

 

# mv /usr/bin/gcc /usr/bin/gcc-4.4
# mv /usr/bin/g++ /usr/bin/g++-4.4 

  

然后创建gcc的不同版本的可选链接(对g++的操作只需替换相应的gcc为g++即可): 

# sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-4.7.4/bin/gcc 50
# sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-4.9.3/bin/gcc 40
# sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 30
# sudo update-alternatives --config gcc
共有 3 个程序提供“gcc”。

  选择    命令
-----------------------------------------------
*+ 1           /usr/local/gcc-4.7.4/bin/gcc
   2           /usr/local/gcc-4.9.3/bin/gcc
   3           /usr/bin/gcc-4.4

  想删除某个选项的话,可以执行类似的指令 

$ sudo update-alternatives --remove gcc /usr/bin/gcc-4.4

  

CentOS 6.6x64下编译gcc-4.7.4

原文:http://www.cnblogs.com/luofl/p/5155087.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!