在 CentOS 上切换或配置 C++ 编译器版本(通常指 GCC/G++),常见做法有以下几种,按推荐程度从高到低说明。
gcc --version
g++ --version
devtoolset(最推荐,CentOS 7/8 常用)yum install -y centos-release-scl
dnf install -y centos-release-stream
dnf install -y scl-utils
例如安装 GCC 11:
yum install -y devtoolset-11
可选版本:
scl enable devtoolset-11 bash
验证:
g++ --version
⚠️ 只对当前 shell 有效
写入 ~/.bashrc:
echo "source /opt/rh/devtoolset-11/enable" >> ~/.bashrc
source ~/.bashrc
alternatives(适合多版本共存)alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 90
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
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
或指定编译器:
cmake -DCMAKE_CXX_COMPILER=g++-11 ..
✅ 用 devtoolset
✅ 执行:
source /opt/rh/devtoolset-11/enable
✅ 检查 ~/.bashrc 是否写入 enable
| 场景 | 推荐方式 |
|---|---|
| CentOS 7/8 | ✅ devtoolset |
| 多版本切换 | alternatives |
| 定制新版本 | 手动编译 |
如果你愿意,可以告诉我:
我可以给你精确到命令的配置方案。