温馨提示×

CentOS C++如何选择编译器

小樊
49
2026-08-30 03:22:55
栏目: 编程语言

CentOS 上选择 C++ 编译器,常见做法和推荐如下(按使用场景说明):


一、CentOS 默认自带编译器(最常用)

1️⃣ GCC(GNU Compiler Collection)✅ 推荐首选

CentOS 默认仓库中自带 gcc / g++稳定、兼容性好

查看是否已安装

g++ --version

安装

sudo yum install -y gcc gcc-c++

编译 C++

g++ main.cpp -o main

✅ 优点

  • 稳定、兼容 CentOS
  • 适合服务器、生产环境
  • 与系统库(glibc)完全匹配

❌ 缺点

  • 版本偏旧(CentOS 7 默认 gcc 4.8)

二、使用较新版本的 GCC(推荐方式)

2️⃣ SCL(Software Collections)✅ 推荐(不破坏系统)

适合 CentOS 7 / 8 用户,想用 C++11 / C++14 / C++17

安装较新 GCC(例如 GCC 9)

sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-9
scl enable devtoolset-9 bash

永久生效

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

验证

g++ --version

✅ 优点

  • 不替换系统 gcc
  • 支持现代 C++
  • 官方仓库维护

三、使用 LLVM / Clang(按需选择)

3️⃣ Clang / Clang++

安装

sudo yum install -y clang

使用

clang++ main.cpp -o main

✅ 优点

  • 编译速度快
  • 错误信息友好
  • 与 LLVM 生态结合好

❌ 注意

  • CentOS 仓库中版本通常较旧
  • 某些库对 GCC 兼容性更好

四、手动编译最新 GCC(不推荐新手)

适合 强需求最新 C++20/23 支持 的场景。

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 --disable-multilib --enable-languages=c,c++
make -j$(nproc)
sudo make install

⚠️ 风险

  • 编译时间长
  • 可能影响系统稳定性

五、如何选择(快速决策)

场景 推荐
CentOS 7/8 普通开发 gcc (SCL devtoolset)
服务器 / 生产环境 系统 gcc
现代 C++(C++17+) devtoolset-9/10/11
编译速度优先 clang
研究 / 尝鲜 手动编译 gcc

六、推荐组合(实战)

CentOS 7 + C++17

sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-11
scl enable devtoolset-11 bash

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

  • CentOS 版本(7 / 8 / Stream)
  • C++ 标准需求(C++11 / 17 / 20)
  • 是否用于生产环境

我可以给你一套 最合适、最稳定的编译器方案

0