最近尝试了fedora、ubuntu、mint、debian、opensuse等多种linux发行版,与CentOS比较之后还是感觉之前用的CentOS比较熟悉,比较习惯。现在CentOS的最新版本为CentOS7,由于实验室的电脑比较老,上这个64位的系统有点卡,所以只能退而求其次,用这个CentOS6.6了。。。
CentOS自带的gcc工具版本为4.4.7,这和CentOS6用的linux内核一样,都是属于古董级别的版本了。这个版本对c++11的支持并不友好,就萌生了升级gcc的想法,但是用yum update gcc却检测不到新版本的gcc。想用高版本的gcc,又没条件升级系统,无奈之下,只能选择在老版本上手动编译安装最新版本的gcc了。
1.首先,从下面网站中下载想要安装的gcc:
现在最新的gcc版本为gcc-5.3,鉴于习惯,还是不太喜欢最新版本的软件,就下载了gcc-4.9.3。
2.解压该文件:tar xjvf gcc-4.9.3.tar.bz2
3.进入解压完成的目录,执行如下命令:
./contrib/download_prerequisites
由于新版本的gcc需要更新的各种依赖库和配置,如果手动挨个下载实在麻烦,而且还可能遇到很多问题,所以gcc开发者为我们提供了这么一个配置脚本,只要执行,就可以自动下载需要的文件了。可以vim一下该文件内容,主要就是下载各种依赖包。
4.为了存放编译期间产生的中间文件,我们建立一个文件夹存放这些文件,执行命令:
mkdir gcc-build-4.9.3
5.进入该文件夹,执行如下命令,来产生makefile文件:
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
注意最开始是 ../ 而不是 ./ !
6.命令完成后,就可以编译新版本的gcc了,执行make命令,等待即可,该过程根据不同机器配置,等待的时间也不一样,在我的电脑上运行了接近 2 个小时之久。。。。。。。
如果电脑是多核电脑,想要提高编译速度,可以执行make -jx。其中的x为你cpu的核数。但是这样执行有可能会产生错误,如果产生了错误,就直接make吧。。。
7.编译完成,就可以安装了,执行 make install 命令,等待安装完成
8.安装完成后,重启,gcc -v 查看版本,就发现新的gcc生效了。写一个小程序验证一下,如果程序中调用了c++11特性,编译时需要加入选项:
g++ -std=c++11 test.cpp -o test