发布于2026-08-19 阅读(0)
扫一扫,手机访问
答案是推荐使用SCL源的devtoolset方案升级GCC。CentOS 7默认GCC 4.8.5过旧,通过安装centos-release-scl和devtoolset-9等工具集可实现多版本共存、按需启用且不破坏系统稳定性。

gcc 在 CentOS 上不是“单个程序”,而是一整套工具链的一部分。默认仓库里提供的版本往往老旧(比如 CentOS 7 是 gcc 4.8.5),直接 yum install gcc 能跑 Hello World,但编译现代 C++ 项目或依赖新标准的开源库时大概率会失败。
如果你只是临时编译简单 C 程序、不涉及 C++17/20、不构建大型项目,用系统自带的最省事:
yum update -ygcc 更稳妥):yum groupinstall "Development Tools"gcc --version 输出应为 gcc (GCC) 4.8.5注意:groupinstall 会一并装上 g++、make、binutils 等必需组件;只装 gcc 不装 gcc-c++,C++ 项目会报 command not found: g++。
CentOS 7 默认不提供 GCC 9,但 Red Hat 最新通过 devtoolset-9 提供了兼容、可共存的高版本工具链——不用卸载旧版,也不污染系统路径。
yum install centos-release-scl -yyum install devtoolset-9 -yscl enable devtoolset-9 bashecho "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc && source ~/.bashrc执行 gcc --version 后应显示类似 gcc (GCC) 9.3.1。注意:这个环境只对当前用户生效,sudo 切换 root 后需重新 scl enable,否则仍用系统默认版本。
CentOS 8+ 已弃用 yum,改用 dnf,且默认源中 GCC 版本更高(CentOS 8 是 gcc 8.3.1,CentOS Stream 9 可达 gcc 11+):
dnf groupinstall "Development Tools"powertools 或 crb 仓库:dnf config-manager --set-enabled crb,再 dnf install gcc-toolset-12注意:gcc-toolset-12 和 devtoolset-9 类似,启用方式是 scl enable gcc-toolset-12 bash,不是直接替换系统 gcc。
从源码编译 gcc 表面自由,实际极容易卡在依赖、磁盘空间、内存不足或 configure 参数错误上:
yum install gmp-devel mpfr-devel libmpc-devel bison flex./contrib/download_prerequisites 这步失败很常见,常因网络或镜像不可用真正需要定制(比如打补丁、改 target)才值得走这条路;日常开发请优先用 devtoolset 或 gcc-toolset。
还有一点容易被忽视:即便你成功通过 scl enable 启用了新的GCC,make 或 cmake 脚本仍有可能调用系统默认路径下的旧 gcc。所以,在构建之前,一定要确认 which gcc 输出的是 /opt/rh/devtoolset-9/root/usr/bin/gcc 这类路径,而不是 /usr/bin/gcc。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9