在 CentOS 上如果遇到 gcc 版本过低(例如 CentOS 7 默认是 gcc 4.8.5,很多现代项目需要 gcc 7/9/11+),一般有以下几种常见处理方式,按推荐程度排序:
适合:不想破坏系统默认 gcc,临时使用高版本 gcc。
# 安装 SCL 源
yum install -y centos-release-scl
# 安装 gcc 9
yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++
# 临时启用
scl enable devtoolset-9 bash
# 验证
gcc --version
只对当前 shell 生效,退出后恢复系统 gcc
echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc
适合:需要长期稳定使用新 gcc
yum install -y epel-release
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
yum install -y gcc11 gcc11-c++
适合:需要特定版本 / 极端环境
# 安装依赖
yum install -y gmp mpfr mpc
# 下载 gcc
wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz
tar -xzf gcc-11.4.0.tar.gz
cd gcc-11.4.0
# 下载依赖
./contrib/download_prerequisites
# 编译
mkdir build && cd build
../configure --prefix=/usr/local/gcc-11 --enable-languages=c,c++ --disable-multilib
make -j$(nproc)
make install
⚠️ 风险:
如果你可以重装系统:
| 场景 | 推荐方案 |
|---|---|
| 编译某个项目 | SCL |
| 服务器长期使用 | ELRepo |
| 编译内核/特定需求 | 手动编译 |
| 新服务器 | 升级系统 |
如果你愿意,可以告诉我:
cat /etc/redhat-release)我可以给你精确命令。