Menu

安装 C++:在 Windows、macOS 和 Linux 上配置编译器

如何安装 C++ 编译器(GCC、Clang 或 MSVC),为你的操作系统选择合适的工具链,并在命令行中确认它能正常工作。

本页包含可运行的编辑器。编辑、运行,立即查看输出。

你真正需要的是一个编译器

上一页讲过,C++ 是一门编译型语言:源代码在运行之前会被转换成本机机器码。要在自己的电脑上做到这一点,你只需要安装一样必不可少的东西:C++ 编译器。编译器读取你的 .cpp 文件,用上 C++ 标准库,生成一个可以由 CPU 直接运行的可执行文件。

入门时并不需要一个重量级的 IDE。IDE 只是在同一个编译器外面包了一层编辑器和工具。很多人用普通的文本编辑器(或 VS Code)写 C++,再从终端调用编译器。先安装编译器,之后想用什么编辑器再加上去就行。

如果只是跟着本页学习,这些都不需要:页面上的编辑器代码块会在云端编译和运行。想写一个完整的程序,在线 C++ 编译器同样不用安装。当你想在自己的电脑上构建和运行 C++ 时,再配置本地编译器。

为你的操作系统选择编译器

主流的 C++ 编译器有三个,全部免费,也都足够现代,支持 C++17 和 C++20:

  • GCC:GNU 编译器套件,它的 C++ 前端是 g++。Linux 上的默认选择。
  • Clang:LLVM 编译器,它的 C++ 前端是 clang++。macOS 上的默认选择。
  • MSVC:微软的编译器(cl.exe),随 Visual Studio 一起提供。Windows 上的原生选择。

不必想太多。用你的平台上的标准编译器就好:三者支持的 C++ 语言是一样的,本课程的每个示例在任何一个上都能编译。只有当你用到高级的、厂商特有的功能时,差异才会显现。

一个容易混淆的命名问题:gcc 和 g++ 都属于 GCC,但编译 C++ 时请始终使用 g++(而不是 gcc)。g++ 会自动链接 C++ 标准库;gcc 不会,你会遇到让人摸不着头脑的链接错误。

在你的平台上安装

不同操作系统的具体步骤略有不同。如果有包管理器,优先使用它,以后升级只需要一条命令。

Windows

最简单的方法是通过 MSYS2 安装程序获取免费的 MinGW-w64 GCC 工具链。安装 MSYS2 后,打开它的终端并运行:

pacman -S mingw-w64-ucrt-x86_64-gcc

这样就有了 g++。然后把 C:\msys64\ucrt64\bin 添加到 PATH,这样在任何终端中都能使用 g++。另一种方法是安装 Visual Studio(免费的 Community 版),并选择“使用 C++ 的桌面开发”工作负载,一次性获得 MSVC 编译器和 IDE。

macOS

Apple 通过命令行工具(Command Line Tools)提供 Clang。一条命令即可安装:

xcode-select --install

这样就有了 clang++。如果你更喜欢 GCC,可以用 Homebrew 安装:brew install gcc。

Linux(Debian/Ubuntu)

sudo apt update
sudo apt install g++

在 Fedora/RHEL 上是 sudo dnf install gcc-c++。这些是 shell 命令,不是 C++ 代码,它们会在整个系统范围内安装编译器。在 Ubuntu 上安装 build-essential 包,可以一次性装好 g++、make 以及其他构建工具。

验证安装是否成功

很多人会跳过这一步,然后白白浪费一个小时。打开一个新的终端(这样它才会读取更新后的 PATH),查询编译器的版本:

g++ --version

你应该会看到类似这样的输出:

g++ (Ubuntu 13.2.0-4ubuntu3) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.

在 macOS 上对应的命令是 clang++ --version;在 Windows 上使用 MSVC 时则是 cl(在“Developer Command Prompt”中运行)。如果提示 command not found,说明编译器没有安装或不在 PATH 中,请回到你的平台的安装步骤,然后重新打开终端。

还有一项有用的检查:确认编译器默认使用的标准。较新的 GCC 或 Clang 默认使用 C++17 或更高版本,这也是本系列页面的前提。你随时可以用 -std=c++20 这样的选项显式指定标准,下一页会详细介绍。

在本地快速测试一下

只要 g++ --version 显示了版本号,你的电脑就能构建 C++ 程序了。你将在本地编译的这个程序,也可以直接在浏览器中运行,所以在接触终端之前,就可以先确认一下输出是否正确:

__cplusplus 宏是编译器内置定义的一个数字,告诉你它正在使用哪个语言标准(例如 201703 表示 C++17)。每个 C++ 程序都从 int main() 开始,std::cout 负责向控制台输出。在自己的电脑上,你会把这段代码保存为 main.cpp,编译它,然后运行生成的可执行文件。这种先构建、再运行的两步流程,正是下一页的主题。

关于 PATH

新安装时最容易出问题的就是 PATH,也就是 shell 查找程序时搜索的文件夹列表。如果在任何目录下都能运行 g++ --version,说明 PATH 中已经包含了编译器所在的文件夹,一切就绪。如果只能在安装目录下运行,或者完全无法运行,说明编译器的 bin 文件夹还没有加入 PATH。

  • 在 Windows 上,这是最常见的绊脚石:安装 MinGW-w64 后,必须手动把它的 bin 文件夹添加到 PATH,并打开一个新的终端。
  • 在 macOS 和 Linux 上,包管理器和 Xcode 工具会自动把编译器加入 PATH,所以很少遇到这个问题。

如果之后某个构建工具或编辑器找不到你的编译器,而在终端中 g++ --version 却能正常运行,几乎总是因为图形界面程序没有继承到这个 PATH。重启该程序(或重启电脑)通常就能解决。

下一步:编译 C++

现在你已经有了一个可用的编译器,并在命令行中验证过它。下一页会把它变成一套真正的工作流程:编写 .cpp 文件,用 g++ 编译它(包括控制标准和输出文件名的 -std 与 -o 选项),运行生成的可执行文件,并讲解每一步在底层实际做了什么。

常见问题

开始写 C++ 需要 IDE 吗?

不需要。C++ 需要的是编译器,IDE 是可选的。真正把源代码变成可运行程序的是编译器(g++、clang++ 或 MSVC 的 cl);VS Code 这样的编辑器或 Visual Studio 这样的 IDE 只是让开发流程更顺手。先安装编译器,需要时再加上编辑器。

应该安装哪个 C++ 编译器?

使用你操作系统上的标准工具链:Linux 上用 GCC(g++),macOS 上通过 Xcode 工具使用 Clang(clang++),Windows 上用 MSVC 或 MinGW-w64。三者都免费,并且支持现代的 C++17/C++20。选一个,把它加入 PATH,就能编译本课程中的所有示例。

如何检查电脑上是否已经安装了 C++ 编译器?

打开终端,运行 g++ --version(或 clang++ --version)。如果看到版本号,说明编译器已在 PATH 中,可以直接使用。如果提示 command not found,说明编译器没有安装或不在 PATH 中,请按照下文为你的平台安装工具链。

Coddy 编程语言插图

和 Coddy 一起学编程

开始