CentOS6.8升级gcc到4.8.5总结

From:http://www.cjjjs.com/paper/czxt/2017222114137150.aspx


[ 摘要] 操作系统是CentOS6.8的32位版本,yum自带的gcc版本为4.4.7,不支持C++11特性。所以需要升级到4.8.5,至少要升级到4.8.1才完全支持C++11。本文提供了自动安装脚本和自动测试安装是否成功的脚本。
操作系统是CentOS6.8的32位版本,yum自带的gcc版本为4.4.7,不支持C++11特性。所以需要升级到4.8.5,至少要升级到4.8.1才完全支持C++11。
新系统是没有安装GCC的,而我们没有gcc4.8.5的安装包,只有源码包,地址为:http://ftp.gnu.org/gnu/gcc/
源码包gcc4.8.5不能直接安装,所以我们需要先编译源码再安装。所以我们还是先有一个编译环境。yum提供了gcc4.4.7版本的安装包,所以我们可以先安装GCC4.4.7,这样就有了编译环境,就可以用来编译gcc4.8.5,然后再安装gcc4.8.5。
有人可能会觉得这个麻烦,为什么不能直接安装gcc4.8.5呢?不是不可以,你得有这个版本的安装包才行呀。如果有安装包,就不需要安装gcc4.4.7,也不需要编译gcc4.8.5了,就可以直接安装gcc4.8.5。
说一下我为什么选择4.8.5版本,因为4.8.5是4.8.x最高的版本,按理说是4.8.x版本中最好的一个版本。因为4.8.1刚完全支持C++11,后面的几个小版本肯定是小幅优化或者完善。具体做了什么优化完善,得看更新日志。
好了,背景知识介绍完毕,下面开始安装过程。
1.获取gcc4.8.5的源码包(不同的版本,基本是只需要换掉后面的版本号即可更换下载地址)
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2
2.解压压缩包
tar -jxvf gcc-4.8.5.tar.bz2
3.进入解压后的目录
cd gcc-4.8.5
4.下载、配置和安装需要的依赖库
./contrib/download_prerequisites
这个脚本文件自动帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
5.直接在当前目录下创建一个目录,存放编译后的文件
mkdir gcc-build-4.8.5
6.进入这个目录来编译
cd gcc-build-4.8.5
7.生成Makefile文件,准备编译整个项目(gcc4.8.5)
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
前面的..表示会进入到上一层目录执行configure。所以gcc-build-4.8.5目录必须在gcc-4.8.5里面创建,也就是我们这样创建的。如果你想自己定义gcc-build-4.8.5目录的位置,你要处理好这里的路径问题。不建议处理,一个安装过程而已,不必折腾,就按照上述方法弄就行了。
8.编译gcc4.8.5的源码,非常耗时,时间决定于你的机器的性能
make
不建议使用make -j4 方式编译,很可能会失败。-j4选项是make对多核处理器的优化。虽然直接make速度慢点,只要不出错,总体上还是可以接受的。
9.安装gcc4.8.5(非root用户要在前面加sudo)
make install
10.重启系统,让gcc4.8.5生效
reboot
11.查看gcc和g++的版本
gcc --version
g++ --version
提示为:
gcc (GCC) 4.8.5
g++ (GCC) 4.8.5
就表示已经安装成功,并且生效了。
特别注意,第10步很容易被忽略。如果不重启系统,查看的版本还是之前的老版本,会让你误认为安装没有成功的。
12.测试C++11特性代码
vi test.cpp
进入vi环境后,输入i进入编辑模式,输入如下代码
亲,点此登陆登录后就可以免费查看代码咯~

我们这里使用了C++11的auto自动类型推导,如果能够正确编译和运行得到预期结果,说明gcc4.8.5就正常工作了。
编译代码
g++ -std=c++11 test.cpp -o t
执行代码
./t
执行结果:
110.21
测试通过,gcc4.8.5安装成功。

为了更快速的安装,下面写好了一个脚本自动执行,就不需要手动一步步的执行了:


点此登陆,登录后就可以免费查看代码咯~


下面是自动测试是否安装成功的脚本:


点此登陆,登录后就可以免费查看代码咯~


将以上脚本代码保存为t.sh,然后执行

chmod +x t.sh

这样给t.sh增加了执行权限。执行脚本t.sh:

./t.sh

如果结果为110.21表示测试通过,如果不是表示测试失败。效果图如下:

文章来源: C++技术网原创文章版权为网站和作者共同所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native