
主流C++编译器主要有GCC(含G++)、MSVC、Clang,以及Intel C++ Compiler(ICC/ICPC,已逐步并入oneAPI)等。其中GCC/G++和MSVC是开发者最常接触的两个——前者跨平台、开源免费,后者深度集成于Windows生态、对微软技术栈支持最佳。
GNU GCC / G++:Linux/macOS主力,Windows也可用
GCC是GNU编译器套件,G++是其专用于C++的前端驱动(实际调用g++比直接调用gcc更稳妥,因它自动链接C++标准库)。它支持从C++98到C++23的大部分特性,兼容POSIX环境,是Linux发行版默认编译器。
- 安装方式:Ubuntu/Debian用sudo apt install g++;macOS通过Homebrew装brew install gcc;Windows推荐MSYS2或WSL,避免MinGW-w64手动配置的坑
- 基础编译命令:g++ -std=c++17 -o main main.cpp(指定C++17标准,输出可执行文件main)
- 常见问题:链接错误如undefined reference to `std::cout',大概率是用了gcc而非g++编译C++代码,或漏了-lstdc++(但g++默认带)
MSVC:Windows原生首选,Visual Studio深度绑定
MSVC(Microsoft Visual C++)是微软官方C++编译器,随Visual Studio或独立的Build Tools for Visual Studio发布。它对Windows API、COM、ATL、MFC及现代C++(尤其C++20/23部分特性)支持积极,生成的二进制与Windows运行时(UCRT、vcruntime)紧密协同。
- 获取方式:下载Build Tools for Visual Studio(免VS IDE),或安装VS时勾选“C++ build tools”
- 命令行使用:必须先运行vcvarsall.bat(如"C:\Program Files\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64)初始化环境变量,再用cl.exe编译
- 简单示例:cl /EHsc /std:c++17 main.cpp(/EHsc启用异常处理,/std指定标准)
Clang / clang++:跨平台、诊断友好,Apple默认
Clang是LLVM项目的一部分,设计目标是高兼容GCC/MSVC、快编译、清晰报错。macOS Xcode默认用它,Linux也可通过包管理器安装。clang++是其C++前端,行为接近g++。
立即学习“C++免费学习笔记(深入)”;
- 优势明显:错误提示更人性化(比如标出模板展开哪一行出错),支持增量编译和静态分析(-fsanitize=address)
- 常用命令:clang++ -std=c++20 -stdlib=libc++ main.cpp -o main(macOS用libc++,Linux通常用libstdc++)
- 注意:在Windows上用Clang编译需配合MSVC工具链(Clang-cl模式),命令形如clang-cl /std:c++17 main.cpp,此时它模拟MSVC命令行接口
基本上就这些。选哪个不取决于“谁更强”,而看你的平台、项目依赖和协作规范——Linux服务器开发优先G++,Windows桌面应用大概率MSVC,跨平台新项目或重视编译体验可试Clang。三者都支持CMake统一管理,实际工程中混用也常见(比如用Clang做静态检查,MSVC做最终构建)。










