在 Linux 上开始使用 CMake 工具
CMake 是一款开源、跨平台的工具,它使用独立于编译器和平台的配置文件来生成特定于您的编译器和平台的本机生成工具文件。
CMake 工具扩展集成了 Visual Studio Code 和 CMake,使配置、生成和调试 C++ 项目变得容易。
在本教程中,你将使用适用于 Visual Studio Code 的 CMake 工具扩展在 Linux 上配置、生成和调试一个简单的 C++ CMake 项目。除了安装 CMake、你的编译器、调试器和生成工具外,本教程中的步骤通常也适用于在其他平台(如 Windows)上使用 CMake。
如果你遇到任何问题,请在 VS Code 文档存储库中为本教程提交一个 issue。此外,有关 CMake 工具的更多信息,请参阅 适用于 Visual Studio Code 的 CMake 工具文档。
先决条件
要在 Ubuntu 上完成本教程,请安装以下内容:
-
适用于 VS Code 的 C++ 扩展。在扩展视图 (⇧⌘X (Windows、Linux Ctrl+Shift+X)) 中搜索“c++”来安装 C/C++ 扩展。
-
适用于 VS Code 的 CMake 工具扩展。在扩展视图 (⇧⌘X (Windows、Linux Ctrl+Shift+X)) 中搜索“CMake tools”来安装 CMake 工具扩展。
-
你还需要安装 CMake、编译器、调试器和生成工具。
视频:什么是生成系统?如何将 CMake 添加到你的项目中?
观看此视频以了解生成系统何时对你有帮助以及如何为你的项目设置 CMake,或者按照以下章节中的步骤操作。
确保已安装 CMake
VS Code CMake 工具扩展通过使用你系统上安装的 CMake 来工作。为获得最佳效果,请使用 CMake 3.27 或更高版本。
检查你的系统上是否已安装 CMake。打开一个终端窗口并输入以下命令:
cmake --version
要安装 CMake,或者如果你没有至少 3.27 版本而需要获取更新的版本,请参阅 Kitware APT 存储库中适用于你平台的说明。请安装 3.27 或更高版本。
确保已安装开发工具
虽然你将使用 VS Code 编辑源代码,但你将使用系统上安装的编译器、调试器和生成工具(如 make
)来编译和调试源代码。
在本 Ubuntu 教程中,我们将使用 GCC 编译器、GDB 进行调试,以及 make
来生成项目。这些工具在 Ubuntu 上默认没有安装,所以你需要安装它们。幸运的是,这很简单。
检查是否已安装 GCC
要查看你的系统上是否已安装 GCC,请打开一个终端窗口并输入以下命令:
gcc -v
如果未安装 GCC,请从终端窗口运行以下命令来更新 Ubuntu 软件包列表。过时的 Linux 发行版可能会干扰获取最新的软件包。
sudo apt-get update
接下来,使用此命令安装 GNU 编译器、make
和 GDB 调试器:
sudo apt-get install build-essential gdb
创建一个 CMake 项目
如果你没有现有的 CMake 项目,请按照创建一个 CMake 项目中的步骤操作。
如果你已经有一个现有的 CMake 项目,并且在根目录中有一个 CMakeLists.txt
文件,请继续到配置 Hello World来配置你的项目。
配置 Hello World
在使用 CMake 工具扩展来生成项目之前,你需要对其进行配置,使其了解你系统上的编译器。在 VS Code 中有两种配置 CMake 的方法:
- 使用 CMake 预设 (推荐)
- 使用 CMake 套件/变体
使用 CMake 预设进行配置
我们推荐使用 CMake 预设来管理你的 CMake 配置。CMake 预设使你能够指定一个通用的 JSON 文件,用于存储项目的所有配置。然后,你可以与他人、在不同 IDE 和不同操作系统之间共享此文件。
如果你按照创建一个 CMake 项目中的步骤创建了一个项目,那么你的项目已经配置为使用 CMake 预设。
如果你的项目有一个 CMakePresets.json
文件,你可以使用“配置”和“生成”预设来指定如何在你的机器上生成项目。
你可以在 CMake 工具视图的“项目状态”下的配置和生成节点中查看预设的活动配置。你可以随时选择这些节点来设置或更改你的配置和生成预设。
你还可以通过在命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 中运行 CMake: 选择配置预设或 CMake: 选择生成预设命令来设置任何预设。
使用 CMake 套件进行配置
如果你的项目没有 CMakePresets.json
文件,你需要使用套件。一个套件代表一个工具链,即用于生成项目的编译器、链接器和其他工具。
要扫描套件:
-
打开命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 并运行 CMake: 选择一个套件。扩展会自动扫描你计算机上的套件,并创建一个在你系统上找到的编译器列表。
-
选择你想要使用的编译器。例如,根据你安装的编译器,你可能会看到类似这样的内容:
你先前选择的套件现在显示在 CMake 工具视图的项目状态部分。
要更改套件,你可以选择 CMake 工具视图中项目状态部分的套件,或者再次从命令面板运行 CMake: 选择一个套件命令。如果你没有看到你正在寻找的编译器,你可以编辑项目中的 cmake-tools-kits.json
文件。要编辑该文件,请打开命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 并运行 CMake: 编辑用户本地 CMake 套件命令。
然后,你需要选择一个变体。
一个变体包含有关如何生成项目的指令。默认情况下,CMake 工具扩展提供四种变体,每种都对应一个默认的生成类型:Debug
、Release
、MinRelSize
和 RelWithDebInfo
。这些选项的作用如下:
Debug
:禁用优化并包含调试信息。Release
:包含优化但不包含调试信息。MinRelSize
:优化尺寸。无调试信息。RelWithDebInfo
:优化速度并包含调试信息。
要选择一个变体,请打开命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 并运行 CMake: 选择变体命令。
选择 Debug 以在你的生成中包含调试信息。
所选的变体将出现在状态栏中活动套件的旁边。
CMake: 配置
现在你已经通过预设或套件/变体选择了你的配置设置,请打开命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 并运行 CMake: Configure 命令来配置你的项目。这将使用你选择的配置在项目的生成文件夹中生成生成文件。
生成 hello world
配置完项目后,你就可以准备生成了。打开命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 并运行 CMake: Build 命令,或从状态栏选择生成按钮。
你可以通过从命令面板选择 CMake: 设置生成目标来选择你想要生成的目标。默认情况下,CMake 工具会生成所有目标。所选的目标将出现在 CMake 工具侧边栏的项目状态视图中的生成节点下,也可以从那里进行设置。
调试 hello world
要运行和调试你的项目,请打开 main.cpp
并在 std::cout
行上设置一个断点。然后打开命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 并运行 CMake: Debug。调试器将在 std::cout
行停止:
继续并按 F5 以继续。
你现在已经使用 VS Code CMake 工具扩展,在 Ubuntu 上通过 CMake 生成和调试了一个 C++ 应用程序。对于其他平台,步骤是相同的;区别在于你如何为你选择的平台安装 CMake 和编译器/调试器。有关在其他平台上设置编译器/调试器的说明,请参阅以下内容: