Linux 上的 CMake Tools 入门
CMake 是一个开源、跨平台的工具,它使用独立于编译器和平台的配置文件,生成特定于你的编译器和平台的原生构建工具文件。
CMake Tools 扩展将 Visual Studio Code 与 CMake 集成,使你的 C++ 项目配置、构建和调试变得轻松。
在本教程中,你将使用适用于 Visual Studio Code 的 CMake Tools 扩展,在 Linux 上配置、构建和调试一个简单的 C++ CMake 项目。除了安装 CMake、编译器、调试器和构建工具之外,本教程中的步骤通常适用于你在其他平台(如 Windows)上使用 CMake 的方式。
如果你遇到任何问题,请在VS Code 文档仓库中为此教程提交问题。此外,有关 CMake Tools 的更多信息,请参阅适用于 Visual Studio Code 的 CMake Tools 文档
先决条件
要在 Ubuntu 上完成本教程,请安装以下内容
-
适用于 VS Code 的 C++ 扩展。通过在扩展视图(⇧⌘X (Windows, Linux Ctrl+Shift+X))中搜索“c++”来安装 C/C++ 扩展。
-
适用于 VS Code 的 CMake Tools 扩展。通过在扩展视图(⇧⌘X (Windows, Linux Ctrl+Shift+X))中搜索“CMake tools”来安装 CMake Tools 扩展。
-
你还需要安装 CMake、编译器、调试器和构建工具。
视频:什么是构建系统?如何将 CMake 添加到你的项目中?
观看此视频以了解构建系统何时能帮助你以及如何为你的项目设置 CMake,或遵循以下各节中的步骤。
确保已安装 CMake
VS Code CMake Tools 扩展通过使用系统上安装的 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 项目中的步骤。
如果你已经有一个在根目录中包含 CMakeLists.txt
文件的现有 CMake 项目,请继续转到配置 Hello World 以配置你的项目。
配置 Hello World
在使用 CMake Tools 扩展构建项目之前,你需要对其进行配置,使其了解系统上的编译器。在 VS Code 中配置 CMake 有两种方法
- 使用 CMake Presets(推荐)
- 使用 CMake Kits/Variants
使用 CMake Presets 进行配置
我们建议使用 CMake Presets 来管理你的 CMake 配置。CMake Presets 允许你指定一个通用的 JSON 文件,你可以在其中存储项目的所有配置。然后,你可以在不同的 IDE 和不同的操作系统之间与他人共享此文件。
如果你按照创建 CMake 项目中的步骤创建了一个项目,你的项目已配置为使用 CMake Presets。
如果你的项目有一个 CMakePresets.json
文件,你可以使用 Configure 和 Build 预设来指定如何在你的机器上构建项目。
你可以在 CMake Tools 视图的“项目状态”中,在配置和构建节点下查看预设的活动配置。你可以随时选择这些节点来设置或更改你的 Configure 和 Build 预设。
你还可以通过在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中运行CMake: Select Configure Preset或CMake: Select Build Preset命令来设置你的任何预设。
使用 CMake Kits 进行配置
如果你的项目没有 CMakePresets.json
文件,你需要使用工具链。工具链表示一个工具链,即用于构建项目的编译器、链接器和其他工具。
扫描工具链
-
打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并运行CMake: Select a Kit。该扩展会自动扫描你计算机上的工具链并创建系统上找到的编译器列表。
-
选择你想使用的编译器。例如,根据你安装的编译器,你可能会看到类似以下内容
你之前选择的工具链现在显示在 CMake Tools 视图的项目状态部分。
要更改工具链,你可以在 CMake Tools 视图的项目状态部分中选择工具链,或再次从命令面板运行CMake: Select a Kit命令。如果你没有看到你正在寻找的编译器,你可以在你的项目中编辑 cmake-tools-kits.json
文件。要编辑该文件,请打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并运行CMake: Edit User-Local CMake Kits命令。
然后,你需要选择一个变体。
变体包含如何构建项目的说明。默认情况下,CMake Tools 扩展提供四种变体,每种都对应一个默认构建类型:Debug
、Release
、MinRelSize
和 RelWithDebInfo
。这些选项的作用如下:
Debug
:禁用优化并包含调试信息。Release
:包含优化但不包含调试信息。MinRelSize
:优化大小。不包含调试信息。RelWithDebInfo
:优化速度并包含调试信息。
要选择变体,请打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并运行CMake: Select Variant命令。
选择Debug以在你的构建中包含调试信息。
所选变体将出现在状态栏中活动工具链的旁边。
CMake:配置
现在你已经通过预设或工具链/变体选择了你的配置设置,打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并运行CMake: Configure命令来配置你的项目。这将使用你选择的配置在项目的构建文件夹中生成构建文件。
构建 Hello World
配置项目后,你就可以进行构建了。打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并运行CMake: Build命令,或从状态栏中选择构建按钮。
你可以通过从命令面板选择CMake: Set Build Target来选择你想构建的目标。默认情况下,CMake Tools 会构建所有目标。所选目标将出现在 CMake Tools 侧边栏的项目状态视图中,位于构建节点下方,也可以从那里进行设置。
调试 Hello World
要运行和调试你的项目,请打开 main.cpp
并在 std::cout
行上设置一个断点。然后打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并运行CMake: Debug。调试器将在 std::cout
行停止。
继续按 F5 继续。
你现在已使用 VS Code CMake Tools 扩展来使用 CMake 在 Ubuntu 上构建和调试 C++ 应用程序。其他平台的步骤相同;不同之处在于你如何安装 CMake 以及所选平台的编译器/调试器。有关设置其他平台编译器/调试器的说明,请参阅以下内容
后续步骤
- 浏览CMake Tools 文档
- 查看C++ 扩展概述