在 CentOS 上“降低 GCC 版本”通常有以下几种常见做法,按推荐程度从高到低说明。
devtoolset(最推荐,CentOS 7/8 都适用)CentOS 官方通过 Software Collections (SCL) 提供了多个 GCC 版本,不会破坏系统自带 GCC。
# CentOS 7
yum install -y centos-release-scl
# CentOS 8(已停止维护,可用 Stream 或手动源)
dnf install -y centos-release-stream
yum list available devtoolset-*
常见版本:
例如安装 GCC 7:
yum install -y devtoolset-7-gcc devtoolset-7-gcc-c++
scl enable devtoolset-7 bash
gcc --version
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc
✅ 优点
alternatives 切换已安装的 GCC(适合已装多个版本)如果你已经通过源码或 SCL 装了多个 gcc:
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
# 切换
alternatives --config gcc
⚠️ 注意
适合必须特定版本或极老系统
# 示例:安装 GCC 5.5
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz
tar -xf gcc-5.5.0.tar.gz
cd gcc-5.5.0
./contrib/download_prerequisites
mkdir build && cd build
../configure --prefix=/usr/local/gcc-5.5 --enable-languages=c,c++
make -j$(nproc)
make install
然后再用 alternatives 切换。
❌ 缺点
| CentOS 版本 | 默认 GCC |
|---|---|
| CentOS 7 | 4.8.5 |
| CentOS 8 | 8.4+ |
| CentOS Stream | 9/10+ |
| 场景 | 推荐方式 |
|---|---|
| 想用旧 GCC 编译项目 | devtoolset |
| 多版本切换 | devtoolset + alternatives |
| 极特殊需求 | 源码编译 |
如果你能告诉我:
cat /etc/redhat-release)我可以给你精确命令。