温馨提示×

linux c++配置如何选编译器

小樊
53
2026-10-02 02:47:38
栏目: 编程语言

在 Linux 下用 C++ 开发时,“选编译器”主要涉及 用哪个编译器(gcc / clang)、如何指定版本、以及 在构建系统(Make/CMake/命令行)里如何配置。下面按常见场景说明。


一、Linux 常见 C++ 编译器

1. GNU 编译器(最常用)

  • g++:C++ 编译器
  • 查看版本:
g++ --version

2. Clang / LLVM

  • clang++:C++ 编译器
  • 查看版本:
clang++ --version

3. 其他(较少用)

  • Intel C++(icpx)
  • 交叉编译器(arm-linux-gnueabihf-g++ 等)

二、命令行直接指定编译器

使用 g++

g++ main.cpp -o app

使用 clang++

clang++ main.cpp -o app

指定 C++ 标准

g++ -std=c++17 main.cpp -o app
clang++ -std=c++20 main.cpp -o app

三、多版本编译器如何选择(非常重要)

1. 查看已安装版本

ls /usr/bin/g++*
ls /usr/bin/clang++*

2. 使用 update-alternatives(推荐)

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 120

sudo update-alternatives --config g++

同理对 gcc / clang++ 配置。


四、Makefile 中指定编译器

CXX = g++
CXXFLAGS = -std=c++17 -Wall

app: main.cpp
	$(CXX) $(CXXFLAGS) main.cpp -o app

或:

CXX = clang++

五、CMake 中配置编译器(最常用)

方法 1:命令行指定(推荐)

cmake -DCMAKE_CXX_COMPILER=clang++ ..

或指定绝对路径:

cmake -DCMAKE_CXX_COMPILER=/usr/bin/g++-12 ..

方法 2:CMakeLists.txt 中(不推荐写死)

set(CMAKE_CXX_COMPILER clang++)

⚠️ 注意:编译器要在第一次 cmake 前决定,否则要清缓存:

rm -rf build && mkdir build && cd build

指定 C++ 标准

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

六、如何选择 g++ 还是 clang++?

场景 建议
服务器 / 生产环境 g++
更好的错误提示 clang++
静态分析 / 工具链 clang++
嵌入式 交叉 g++
新标准支持 clang++ 通常更快

七、常见坑

  1. g++ 和 gcc 混用

    • C++ 一定要用 g++,不是 gcc
  2. CMake 缓存导致编译器不生效

    • 删除 build 目录重新配置
  3. 系统默认太旧

    • Ubuntu 20.04 默认 g+±9,建议装 g+±11/12

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

  • 你用的是 Ubuntu / CentOS / Arch?
  • 是 命令行 / Makefile / CMake / VSCode?
  • 需要 C++11/17/20 吗?

我可以直接给你一份可复制的配置。

0 踩