在 CentOS 7 上升级 GCC 版本可以通过多种方法实现, 这里使用个人认为最简单的方式升级,CentOS SCL
环境信息
- Centos7
- gcc4.8.5 ->gcc8.3.1
安装SCL仓库
1
| yum install centos-release-scl
|
配置SCL仓库源
由于scl源在国外,有时候安装很慢,这里把源换成国内阿里源
1
2
3
4
| # 备份
mv /etc/yum.repos.d/CentOS-SCLo-scl.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo.bak
# 写入阿里源
vim /etc/yum.repos.d/CentOS-SCLo-scl.repo
|
内容如下:
1
2
3
4
5
6
7
| [centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SC
|
- 修改CentOS-SCLo-scl-rh.repo
1
2
3
4
| # 备份
mv /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo.bak
# 写入阿里源
vim /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
|
内容如下:
1
2
3
4
5
6
7
| [centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
|
清理缓存
安装gcc8
1
| yum install devtoolset-8
|
1
| scl enable devtoolset-8 bash
|
这将启动一个新的shell
会话,其中gcc
将指向 devtoolset-8
提供的 GCC 版本
验证gcc版本
输出类似于:gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
注意
使用scl是临时启用的shell,只有在当前shell中gcc版本才是8.3.1,不是全局生效的,不建议全局生效,因为不同软件的编译依赖gcc版本不同,使用scl能完美解决不同gcc版本的使用问题