前言

CentOS 7官方源带的gcc最新版本是4.8.5,发布于2015年,年代久远且不支持c++14。要编译c++14及以上项目,必须要升级现有版本或者安装高版本的gcc。

下面来讲解升级的方法,希望对大家有用!~

gcc 所有版本,官网链接

解决方法

  • 手动编译安装(费时单核编译gcc至少一小时,且耗费精力)不推荐使用
  • 通过源来安装(快速稳定)推荐使用,还可以随时切换 gcc 版本,方便实用

通过源来安装

1. 安装源 scl

1
yum install centos-release-scl

2. 安装 gcc

1
yum install devtoolset-8-gcc devtoolset-8-gcc-c++

3. 切换 gcc 版本

1
scl enable devtoolset-8 -- bash

4. 问题

上面的指令只是在当前的 shell 生效,如果退出当前 shell 的话就失效。

要想使其一直生效,可以在 /etc/profile.d/ 文件夹下,创建 gcc8.sh,添加如下代码,这样就可以自动识别 gcc 了。

1
source /opt/rh/devtoolset-8/enable

5.注意

需要注意的是,在使用cmake3时,即使执行了上述操作,默认情况下cmake3命令还会使用系统原默认gcc版本,即4.8.5。 这时需要在执行cmake3命令时添加以下内容(以devtoolset-8为例):

1
-DCMAKE_C_COMPILER=/opt/rh/devtoolset-8/root/usr/bin/gcc -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-8/root/usr/bin/g++