温馨提示×

centos怎么选c++版本配置

小樊
37
2026-10-11 21:02:12
栏目: 编程语言

在 CentOS 上“选 C++ 版本”一般涉及 编译器版本(gcc/g++) 和 C++ 标准(-std=c++11/14/17/20) 两个层面。下面按常见场景说明。


一、选择 C++ 标准版本(编译时)

不管 gcc 版本如何,都可以通过编译参数指定 C++ 标准:

g++ main.cpp -std=c++11 -o app
g++ main.cpp -std=c++14 -o app
g++ main.cpp -std=c++17 -o app
g++ main.cpp -std=c++20 -o app

✅ 推荐:

  • 新项目:c++17
  • 老项目兼容:c++11 / c++14

二、CentOS 自带 gcc 版本(系统默认)

CentOS 7

  • 默认 gcc:4.8.5
  • 支持到:C++11(不完整)
  • ❌ 不支持 C++17 完整特性

CentOS 8

  • 默认 gcc:8.x / 10.x
  • 支持:C++17

三、升级 gcc(推荐方式)

✅ 方式 1:使用 Software Collections(SCL,最常用)

CentOS 7 示例

yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash

查看版本:

gcc --version
g++ --version

devtoolset 对应 gcc 版本:

devtoolset gcc
7 7.x
9 9.x
11 11.x

⚠️ 注意:scl enable 只对当前 shell 有效

永久生效

echo "source /opt/rh/devtoolset-11/enable" >> ~/.bashrc

✅ 方式 2:使用 GCC Toolset(CentOS 8 / Stream)

dnf install gcc-toolset-11
scl enable gcc-toolset-11 bash

✅ 方式 3:手动编译 gcc(不推荐)

适合特殊需求,但耗时、易出错。


四、CMake 中指定 C++ 版本

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

或:

target_compile_features(myapp PRIVATE cxx_std_17)

五、查看当前支持的最高 C++ 标准

echo | g++ -std=c++17 -E -x c++ - | grep __cplusplus

或:

g++ -dM -E -x c++ /dev/null | grep __cplusplus

六、常见推荐组合(总结)

系统 推荐做法
CentOS 7 devtoolset-11 + c++17
CentOS 8 gcc-toolset-11
新项目 C++17
老项目 C++11

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 是否使用 CMake
  • 项目是新还是旧

我可以给你更精确的一键配置方案。

0 踩