在 C++ 开发中,编译器是将源代码(.cpp)转换为可执行程序(或目标文件)的核心工具。不同编译器因开发主体、设计目标、平台支持不同,在兼容性、性能、功能上存在差异。下面重点讲解最常用的 5 种 C++ 编译器:GCC、Clang、MSVC、MinGW-w64、Intel C++ Compiler(ICC),从「核心定位、平台支持、特点、适用场景、使用方式」展开,帮你理清选择逻辑。
一、核心概念:编译器的作用
C++ 是「编译型语言」,源代码无法直接运行,必须通过编译器完成 3 个核心步骤:
- 预处理:处理
#include、#define等预处理指令,生成.i文件; - 编译:将预处理后的代码转换为汇编语言(
.s文件); - 汇编:将汇编代码转换为机器指令(目标文件
.o/.obj); - 链接:将目标文件与标准库、第三方库链接,生成可执行程序(
.exe/ELF)。
编译器的核心差异体现在:对 C++ 标准的支持程度、优化能力、平台适配、错误提示、库依赖等。
二、常用 C++ 编译器详解
1. GCC(GNU Compiler Collection):开源跨平台的'万能编译器'
核心定位
GCC 是 GNU 项目开发的开源免费编译器集合(支持 C、C++、Java、Fortran 等多语言),是 Linux 系统的默认 C++ 编译器,也是跨平台开发的核心工具之一。
关键信息
- 开发主体:GNU 社区(开源);
- 平台支持:Linux(原生)、macOS(需安装 Xcode Command Line Tools)、Windows(需通过 MinGW-w64 移植);
- C++ 标准支持:对 C++11/14/17/20/23 支持完整(新版本持续跟进标准);
- 核心优势:
- 开源免费,生态成熟,文档丰富;
- 跨平台兼容性强,支持嵌入式系统(ARM、RISC-V 等架构);
- 优化能力强(支持
-O0~-O3优化级别,-Os体积优化,-Ofast激进优化); - 支持多语言、多架构,是嵌入式开发、Linux 后台开发的首选。
适用场景
- Linux 平台开发(后台服务、工具程序、嵌入式系统);
- 跨平台项目(需兼容 Linux/macOS/ 嵌入式);
- 对开源、多架构支持有需求的场景。
简单使用(命令行)
# 编译单个文件:g++ 是 GCC 的 C++ 编译器前端
g++ main.cpp -o main.exe # 生成可执行程序 main.exe(Windows)/ main(Linux/macOS)
# 启用 C++17 标准 + O2 优化
g++ main.cpp -std=c++17 -O2 -o main
# 链接第三方库(如 Boost)
g++ main.cpp -lboost_system -o main
注意
- GCC 原生不支持 Windows,需通过 MinGW-w64 移植(下文讲解);
- macOS 从 Xcode 10 开始,默认用 Clang 替代 GCC(但仍可手动安装 GCC)。


