温馨提示×

centos怎么选c++编译版本

小樊
53
2026-09-06 03:47:37
栏目: 编程语言

在 CentOS 上“选 C++ 编译版本”,通常说的是用哪个 g++/clang 版本来编译 C++ 程序,以及指定 C++ 标准(如 C++11/14/17/20)。下面分情况说明。


一、查看当前可用的 C++ 编译器

1. 查看 g++

g++ --version

which g++

2. 查看 clang(如果装了)

clang++ --version

二、CentOS 默认编译器情况(很重要)

  • CentOS 7:默认 g++ 4.8.5(只支持到 C++11,部分 C++14)
  • CentOS 8 / Stream:默认 g++ 8.x10.x
  • CentOS 7 想用 C++17/20:必须升级编译器

三、选择 / 安装更高版本的 g++

✅ 方法 1:使用 Software Collections(推荐,CentOS 7)

yum install centos-release-scl
yum install devtoolset-9-gcc-c++
scl enable devtoolset-9 bash

常用版本:

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

⚠️ 注意:scl enable 只在当前 shell 生效

永久生效(加到 ~/.bashrc):

source /opt/rh/devtoolset-9/enable

✅ 方法 2:直接安装多个 gcc 并手动选择

ls /usr/bin/g++*

如果你装了多个:

g++-9 main.cpp -o main

或建立软链接:

ln -sf /usr/bin/g++-9 /usr/local/bin/g++

✅ 方法 3:用 CMake 指定编译器

cmake -DCMAKE_CXX_COMPILER=g++-9 ..

或在 CMakeLists.txt

set(CMAKE_CXX_COMPILER "g++-9")

四、选择 C++ 标准版本(不是编译器版本)

无论用哪个 g++,都要指定标准:

g++ -std=c++11 main.cpp
g++ -std=c++14 main.cpp
g++ -std=c++17 main.cpp
g++ -std=c++20 main.cpp

CMake 中:

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

五、常见推荐组合(2024)

系统 推荐
CentOS 7 devtoolset-11 + C++17
CentOS 8 系统 g++ + C++17
新项目 C++17 / C++20

六、快速判断该用哪个版本

  • 只是编译旧程序 → 系统默认即可
  • std::filesystem → 至少 g++ 8
  • 用 C++20 特性 → g++ 10+

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

  • CentOS 版本
  • 用的 g++ 版本
  • 是否用 CMake / Makefile

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

0