温馨提示×

CentOS怎么选择C++版本

小樊
34
2026-07-08 19:01:31
栏目: 编程语言

CentOS 上选择或切换 C++(GCC / G++)版本,常见做法取决于你用的是 CentOS 7 / 8 / Stream。下面按场景给你一个实用指南


一、先确认当前 GCC / G++ 版本

gcc --version
g++ --version

二、CentOS 7:使用 Software Collections(SCL)(最常用 ✅)

CentOS 7 默认 GCC 很老(4.8),推荐用 devtoolset

1️⃣ 安装 SCL 源

yum install -y centos-release-scl

2️⃣ 安装指定 C++ 版本

例如安装 GCC 11

yum install -y devtoolset-11

常见版本对应:

devtoolset GCC 版本
devtoolset-7 GCC 7
devtoolset-8 GCC 8
devtoolset-9 GCC 9
devtoolset-10 GCC 10
devtoolset-11 GCC 11

3️⃣ 临时启用(推荐)

scl enable devtoolset-11 bash

启用后:

g++ --version

4️⃣ 永久启用(可选)

写入 ~/.bashrc

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

适合编译 C++17 / C++20


三、CentOS 8 / Stream:使用 AppStream + GCC Toolset

1️⃣ 查看可用版本

yum list available gcc*

2️⃣ 安装指定版本

例如 GCC 11:

dnf install -y gcc-toolset-11

3️⃣ 启用

scl enable gcc-toolset-11 bash

或永久:

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

四、手动指定 C++ 标准(编译时)

即使 GCC 版本高,也要指定标准:

g++ -std=c++17 main.cpp -o main

或:

g++ -std=c++20 main.cpp -o main

五、多版本 GCC 共存(高级)

如果你需要 同时保留多个版本

which g++
/usr/bin/g++

# 使用绝对路径
/opt/rh/devtoolset-11/root/usr/bin/g++

或在 CMake 中指定:

export CXX=/opt/rh/devtoolset-11/root/usr/bin/g++

六、不想用 GCC?用 Clang

安装

yum install -y clang

指定标准

clang++ -std=c++20 main.cpp

七、推荐方案总结 ✅

系统 推荐方式
CentOS 7 devtoolset-11
CentOS 8 / Stream gcc-toolset
临时测试 scl enable
正式编译 CMake + 指定 GCC

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ 是否用于 编译软件 / 开发 / CI
  • ✅ 是否需要 C++17 / 20 / 23

我可以给你一套最合适的具体命令

0