https://tlanyan.me/install-upgrade-gcc-on-centos/
CentOS 7官方源的gcc最新版本是4.8.5,发布于2015年,年代久远且不支持c++14。要编译c++14及以上项目,必须要升级现有版本或者安装高版本的gcc。
解决办法有两种:手动编译(也可以从其他机器拷贝或者网上下载),或从源安装。
大多数情况下本人都不推荐从源码编译,不仅因为编译过程中常会出现各种依赖问题需要手动解决,更因为件升级还要再来一次,相当的折腾(单核编译gcc至少一小时,费时费精力)。
本文介绍从源安装高版本gcc的办法。
红帽其实已经编译好了高版本的gcc,但未更新到base和epel这两个常用源中,而是将这些版本放在scl
中。
首先安装scl
:
yum install -y centos-release-scl
如果你之前用过grouplist/install
等命令,应该知道gcc包含在Development Tools
这个组中。scl
中的gcc/g++软件包的前缀都是devtoolset
,包含gcc 6的软件包是devtoolset-6
,其安装命令是:
yum install -y devtoolset-6-gcc devtoolset-6-gcc-c++
出了gcc 6,scl中还有如下gcc版本:
至于为什么没有devtoolset-5,我也不清楚,估计是包含在devtoolset-4中了吧。
值得说明的是这些软件包可以同时安装,不会相互覆盖和冲突,也不会覆盖系统的版本。即可以在系统中可同时存在gcc 6, gcc 7, gcc 8等多个版本。