在 CentOS 上如果 gcc 版本过低(例如 CentOS 7 默认是 gcc 4.8.5,很多新项目需要 gcc 7/9/11 以上),常见处理方式有以下几种,按推荐程度说明:
适合:不想破坏系统自带 gcc,只想临时使用高版本
# 安装 SCL 源
sudo yum install -y centos-release-scl
# 安装 gcc 9
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++
# 使用 gcc 9(仅当前 shell 生效)
scl enable devtoolset-9 bash
gcc --version
如需 gcc 11:
sudo yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++
scl enable devtoolset-11 bash
✅ 优点:不影响系统 gcc
❌ 缺点:每次新 shell 要启用
⚠️ 有风险,可能导致系统工具异常
sudo yum remove gcc
sudo yum install gcc11
或手动编译安装(危险,不建议新手)
适合:需要特定版本 / SCL 没有的版本
# 安装依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y gmp-devel mpfr-devel libmpc-devel
# 下载 gcc 源码
wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz
tar -xf gcc-11.4.0.tar.gz
cd gcc-11.4.0
./configure --prefix=/usr/local/gcc-11 --enable-languages=c,c++ --disable-multilib
make -j$(nproc)
sudo make install
然后:
export PATH=/usr/local/gcc-11/bin:$PATH
CentOS 7 已 EOL,官方不再维护
✅ 建议迁移到:
| 情况 | 建议 |
|---|---|
| CentOS 7 编译项目 | devtoolset-9 / 11 |
| 生产服务器 | SCL,不替换系统 gcc |
| 新环境 | 换 Rocky/Alma |
| 需要最新 C++ 标准 | gcc ≥ 11 |
如果你愿意,可以告诉我:
cat /etc/centos-release)我可以给你精确命令。