温馨提示×

如何在centos升级c++版本

小樊
47
2026-10-14 19:29:25
栏目: 编程语言

在 CentOS 上升级 C++(更准确说是 GCC / G++ 编译器)版本,常见做法有以下几种,按推荐程度从高到低说明。


一、推荐方式:使用 SCL(Software Collections)

适用于 CentOS 7 / 8,不破坏系统自带编译器,安全稳定。

1. 安装 SCL

sudo yum install centos-release-scl -y

2. 查看可用 GCC 版本

yum list available devtoolset-*

常见版本:

  • devtoolset-7 → GCC 7
  • devtoolset-8 → GCC 8
  • devtoolset-9 → GCC 9
  • devtoolset-11 → GCC 11

3. 安装指定版本(例如 GCC 11)

sudo yum install devtoolset-11 -y

4. 启用新版本(当前终端生效)

scl enable devtoolset-11 bash

验证:

gcc --version
g++ --version

5. 永久生效(可选)

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

二、CentOS 8 / Stream:使用 dnf(官方仓库)

sudo dnf install gcc gcc-c++ -y

或安装较新版本:

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

三、手动编译安装(不推荐,除非必须)

适合需要 GCC 12+ 或定制需求。

1. 安装依赖

sudo yum groupinstall "Development Tools" -y
sudo yum install wget bzip2 -y

2. 下载 GCC 源码

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

3. 下载依赖

./contrib/download_prerequisites

4. 编译安装

mkdir build && cd build
../configure --disable-multilib --enable-languages=c,c++
make -j$(nproc)
sudo make install

⚠️ 编译时间很长,且容易破坏系统环境。


四、验证 C++ 标准支持

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

五、常见问题

1. 升级后 gcc --version 没变?

  • 没启用 SCL
  • 或未重新登录终端

2. CMake 找不到新 GCC?

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

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 当前 GCC 版本
  • 需要 C++ 标准(11/17/20)

我可以给你最精确的命令。

0 踩