Ubuntu下gcc的版本编译

原创
2015/12/04 18:53
阅读数 2.4K

Ubuntu已经内置了gcc的安装。但在很多时候,由于需要特定版本的gcc,那么需要自己安装。

但是在安装gcc4.9的时候,自动安装了最新的版本,而我想要用4.9.2版本来进行编译和验证,却无法安装上,只好自己进行源码的编译。

1、下载

从这里http://ftp.gnu.org/gnu 可以下载最新的gcc版本,还需要同时下载gmp/mpc/mpfr,注意一定要是对应的版本,保险起见,选择gcc编译式提示的最低版本即可,版本太高有可能引起其它的问题。

使用gcc源码目录下的./contrib/download_prerequisites进行下载,可保证版本的一致性,推荐使用。

2、编译

采用下面的步骤进行编译:

tar -vxf  gcc-4.9.3.tar.bz2
cd gcc-4.9.3
./contrib/download_prerequisites
#脚本自己主动下载依赖包 gmp, mpfr,mpc。 
#也能够手动下载然后移到/gcc-4.9.0文件夹以下自己主动一起安装,或者自行先编译安装
./configure
sudo make install

编译完了后,使用gcc -v检查一下安装的版本。

2.1 在独立的目录中编译

运行configure命令,产生makefile。

先创建build文件夹,编译到此文件夹下:

mkdir build
cd build
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

2.2 多线程编译

gcc的编译时间比较长,在多核机器可以启用多线程。虚拟机中,建议预先增加CPU的数量与线程数一致。

make -j4

4表示线程数,时间比較长,用多个线程更快

3、安装

sudo make install

如果以前编译过,部分链接库缓存可能版本较老。为了清除以前的遗留文件,可以先运行make clean。


4、使用

如果需要在多个gcc版本间切换,参考:http://my.oschina.net/u/2306127/blog/538139

但是,这种方法只能切换gcc编译器,所涉及到的引用库如libgomp等不会切换,导致出现undefined symbol之类的错误。

在Ubuntu14.04,缺省编译的gcc位于/usr/local/lib64目录下,通过设定载入库的目录即可解决这个问题:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64

如果放在启动的sh脚本中,该设置只在当前运行环境下有效,从而可以避免其他程序之间的相互干扰。




展开阅读全文
加载中
点击加入讨论🔥(1) 发布并加入讨论🔥
1 评论
2 收藏
0
分享
返回顶部
顶部