温馨提示×

centos c++多版本怎么共存

小樊
42
2026-10-03 01:26:20
栏目: 编程语言

在 CentOS 上实现 多个 C++ 编译器(如 gcc/g++)版本共存,常见且稳妥的做法有几种,下面按推荐程度给你说明。


一、使用 devtoolset(最推荐,CentOS 官方方式)

CentOS 7 / 8 都支持,适合生产环境。

1. 安装 SCL 源

yum install -y centos-release-scl

2. 安装不同版本 devtoolset

yum install -y devtoolset-7
yum install -y devtoolset-9
yum install -y devtoolset-11

对应 gcc 版本:

  • devtoolset-7 → gcc 7
  • devtoolset-9 → gcc 9
  • devtoolset-11 → gcc 11

3. 临时切换版本

scl enable devtoolset-11 bash
g++ --version

4. 永久生效(用户级)

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

✅ 优点:

  • 不影响系统默认 gcc
  • 多版本完全隔离
  • 官方维护,稳定

二、手动编译安装到不同目录(最灵活)

适合需要 非常新版本(gcc 12/13) 的场景。

1. 下载 gcc 源码

wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
tar -xzf gcc-13.2.0.tar.gz
cd gcc-13.2.0

2. 安装依赖

./contrib/download_prerequisites

3. 编译安装

mkdir build && cd build
../configure --prefix=/opt/gcc-13 \
  --enable-languages=c,c++ \
  --disable-multilib
make -j$(nproc)
make install

4. 使用指定版本

export PATH=/opt/gcc-13/bin:$PATH
export LD_LIBRARY_PATH=/opt/gcc-13/lib64:$LD_LIBRARY_PATH

✅ 优点:完全自定义
❌ 缺点:编译慢,维护麻烦


三、使用 alternatives(不推荐用于 C++)

alternatives --install /usr/bin/g++ g++ /opt/gcc-13/bin/g++ 60
alternatives --config g++

⚠ 不推荐原因:

  • 容易破坏系统工具链
  • 影响 yum / 系统编译

四、CMake 指定编译器(开发常用)

cmake -DCMAKE_C_COMPILER=/opt/gcc-13/bin/gcc \
      -DCMAKE_CXX_COMPILER=/opt/gcc-13/bin/g++ .

推荐方案总结

场景 推荐方式
CentOS 7/8 正常开发 devtoolset
需要 gcc 12+ 手动编译
CI / 容器 devtoolset
系统级替换 ❌ 不建议

如果你告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 需要的 gcc 版本
  • 是否用于生产 / 开发 / CI

我可以直接给你一套 可复制的命令。

0 踩