温馨提示×

centos c++版本如何切换配置

小樊
46
2026-07-20 11:17:10
栏目: 编程语言

CentOS 上切换或配置 C++ 编译器版本(通常指 GCC/G++),常见做法有以下几种,按推荐程度从高到低说明。


一、查看当前 GCC / G++ 版本

gcc --version
g++ --version

二、方式一:使用 devtoolset最推荐,CentOS 7/8 常用

1️⃣ 安装 SCL 源

CentOS 7

yum install -y centos-release-scl

CentOS 8

dnf install -y centos-release-stream
dnf install -y scl-utils

2️⃣ 安装指定 devtoolset

例如安装 GCC 11

yum install -y devtoolset-11

可选版本:

  • devtoolset-7(GCC 7)
  • devtoolset-8(GCC 8)
  • devtoolset-9(GCC 9)
  • devtoolset-10(GCC 10)
  • devtoolset-11(GCC 11)

3️⃣ 临时切换 C++ 版本

scl enable devtoolset-11 bash

验证:

g++ --version

⚠️ 只对当前 shell 有效


4️⃣ 永久切换(推荐)

写入 ~/.bashrc

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

三、方式二:使用 alternatives(适合多版本共存)

1️⃣ 添加多个 GCC 版本

alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 90

2️⃣ 切换版本

alternatives --config gcc

同理配置 g++

alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 90
alternatives --config g++

四、方式三:手动编译安装(不推荐新手)

wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz
tar -xf gcc-13.2.0.tar.xz
cd gcc-13.2.0
./contrib/download_prerequisites
mkdir build && cd build
../configure --prefix=/usr/local/gcc-13 --enable-languages=c,c++
make -j$(nproc)
make install

使用时:

export PATH=/usr/local/gcc-13/bin:$PATH

五、CMake 项目中指定 C++ 版本(补充)

CMakeLists.txt

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

或指定编译器:

cmake -DCMAKE_CXX_COMPILER=g++-11 ..

六、常见问题

❓ CentOS 7 默认 GCC 太老?

✅ 用 devtoolset

❓ devtoolset 安装后没生效?

✅ 执行:

source /opt/rh/devtoolset-11/enable

❓ 系统升级后失效?

✅ 检查 ~/.bashrc 是否写入 enable


七、推荐组合(总结)

场景 推荐方式
CentOS 7/8 ✅ devtoolset
多版本切换 alternatives
定制新版本 手动编译

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

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 需要 C++11 / 14 / 17 / 20
  • ✅ 是 系统全局 还是 单个项目

我可以给你精确到命令的配置方案。

0