在 CentOS 上,GCC 的“兼容版本”通常可以从 系统自带版本、可升级版本、ABI 兼容性 三个层面来理解。下面按常见 CentOS 版本给你一个清晰说明。
通过 DevToolset(SCL):
| DevToolset | GCC 版本 | 支持 C++ 标准 |
|---|---|---|
| devtoolset-7 | GCC 7.3 | C++14 / 部分 C++17 |
| devtoolset-8 | GCC 8.3 | C++17 |
| devtoolset-9 | GCC 9.3 | C++17 |
| devtoolset-10 | GCC 10.2 | C++20(部分) |
| devtoolset-11 | GCC 11.2 | C++20 |
安装示例:
yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash
✅ ABI 兼容性说明
通过 AppStream:
yum install gcc-toolset-10
scl enable gcc-toolset-10 bash
常见版本:
✅ ABI
gcc-toolset| CentOS 版本 | 默认 GCC | 推荐升级 | 适合标准 |
|---|---|---|---|
| CentOS 7 | 4.8.5 | 7–11 | C++11 / C++17 |
| CentOS 8 | 8.5 | 9–12 | C++17 / C++20 |
| Stream 9 | 11+ | 12+ | C++20 |
undefined reference to symbol
GLIBCXX_3.4.21 not found
✅ 解决:
✅ 老项目 / 商业软件
✅ 现代 C++ / C++17
✅ 最新 C++20
如果你愿意,可以告诉我:
我可以给你 最合适、最稳定的 GCC 版本搭配方案。