工作中有时需要进行gcc的升级,尤其是centOS的用户。centOS上的软件版本一般比较旧,我使用的是centOS 6.8, 该系统上原有的gcc版本是4.4.7, 不支持C++11标准的特性。
最近在工作中遇到要编译一个使用了C++11标准的开源代码,因而需要进行gcc的升级。
gcc 升级的两种方法
目前知道两种升级gcc 的方法:
- 直接编译安装新版本的gcc (目测前方坑很多)
- 安装devtoolset来升级gcc, (网上说这种方式很简单)
使用devtoolset升级gcc版本
下面通过devtoolset来升级下gcc
devtoolset目前有4个版本:devtoolset-1.1 devtoolset-2 devtoolset-3 devtoolset-4,以上版本分别对应gcc的版本为4.7、4.8、4.9、5.2。
gcc 4.8好像就完全支持C++11了, 安全起见,我打算安装gcc 4.9。(如果想升级到其他版本,可以google下相关的关键字)
下面是升级步骤(在centOS 6.8上亲测有效)
yum install centos-release-scl-rh centos-release-scl
yum check-update
yum install devtoolset-3-gcc devtoolset-3-gcc-c++
升级之后需要启动devtoolset
:
source /opt/rh/devtoolset-3/enable
测试发现当前命令似乎只对本次shell有效,所以可能需要把这条命令加入到~/.bashrc中。
接下来可以通过gcc -v
查看是否更新完毕。