在 CentOS 上“选择 C++ 版本”通常涉及两件事:
1️⃣ 安装哪个 GCC / Clang 编译器
2️⃣ 编译时启用哪个 C++ 标准(如 C++11 / 14 / 17 / 20)
下面按常见场景说明。
g++ --version
gcc --version
CentOS 7 默认通常是:
CentOS 8 / Stream:
yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash
可用版本:
验证:
g++ --version
⚠️ scl enable 只在当前 shell 生效。
dnf install gcc-toolset-11
scl enable gcc-toolset-11 bash
适合需要 GCC 12/13/14 的情况。
g++ main.cpp -std=c++11
g++ main.cpp -std=c++14
g++ main.cpp -std=c++17
g++ main.cpp -std=c++20
示例:
g++ -std=c++17 -O2 main.cpp -o app
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
target_compile_features(myapp PRIVATE cxx_std_17)
| CentOS | 推荐 GCC | C++ 标准 |
|---|---|---|
| 7 | devtoolset-11 | C++17 |
| 8 | gcc-toolset-11 | C++17 |
| Stream | gcc 12+ | C++20 |
echo '#include <cstdio>
int main(){auto x=1;printf("%d",x);}' | g++ -std=c++17 -x c++ - -o t && ./t
如果你能告诉我:
我可以直接给你最合适的一键配置方案。