跳到主要内容

在 Visual Studio 中使用 CMake 安装和使用包

本教程展示了如何使用 CMake、kmpkg 和 Visual Studio 创建一个 C++ “Hello World” 程序,并使用 fmt 库。你将学习如何安装依赖、配置、构建并运行一个简单的应用程序。

前提条件

1 - 设置 kmpkg

  1. 克隆仓库

首先从 GitHub 克隆 kmpkg 仓库。该仓库包含获取 kmpkg 可执行文件的脚本,以及由 kmpkg 社区维护的精选开源库注册表。运行:

git clone https://github.com/kumose/kmpkg.git

kmpkg 精选注册表包含超过 2000 个开源库,这些库已通过持续集成验证可协同工作。仓库本身不包含源码,但包含构建和安装所需的配方和元数据。

  1. 运行引导脚本

进入 kmpkg 目录并执行引导脚本:

cd kmpkg && bootstrap-kmpkg.bat

引导脚本会检查前置条件并下载 kmpkg 可执行文件。kmpkg 现在已可用。

2 - 设置 Visual Studio 项目

  1. 创建 Visual Studio 项目
  • 使用 “CMake Project” 模板创建新项目
  • 项目命名为 "helloworld"
  • 勾选 “Place solution and project in the same directory”
  • 点击 “Create”
  1. 配置 KMPKG_ROOT 环境变量

以这种方式设置环境变量只影响当前终端会话。如需永久生效,请通过 Windows 系统环境变量面板设置。

打开 Visual Studio 内置 Developer PowerShell,运行:

$env:KMPKG_ROOT="C:\path\to\kmpkg"
$env:PATH="$env:KMPKG_ROOT;$env:PATH"

设置 KMPKG_ROOT 可帮助 Visual Studio 定位 kmpkg,添加到 PATH 后可直接运行 kmpkg 命令。

  1. 生成清单文件并添加依赖

在项目目录运行:

kmpkg new --application
kmpkg add port fmt

kmpkg.json 内容如下:

{
"dependencies": [
"fmt"
]
}

kmpkg 通过清单文件安装依赖并集成 CMake。生成的 kmpkg-configuration.json 文件包含依赖最小版本约束,建议纳入版本控制。

3 - 设置项目文件

  1. 修改 helloworld.cpp
#include <fmt/core.h>

int main()
{
fmt::print("Hello World!\n");
return 0;
}
  1. 配置 CMake Presets 文件

CMakePresets.json

{
"version": 2,
"configurePresets": [
{
"name": "kmpkg",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "$env{KMPKG_ROOT}/scripts/buildsystems/kmpkg.cmake"
}
}
]
}

CMakeUserPresets.json

{
"version": 2,
"configurePresets": [
{
"name": "default",
"inherits": "kmpkg",
"environment": {
"KMPKG_ROOT": "<path to kmpkg>"
}
}
]
}
  1. 修改 CMakeLists.txt
cmake_minimum_required(VERSION 3.10)

project(HelloWorld)

find_package(fmt CONFIG REQUIRED)

add_executable(HelloWorld helloworld.cpp)

target_link_libraries(HelloWorld PRIVATE fmt::fmt)

每行解释:

  • cmake_minimum_required(VERSION 3.10):最低 CMake 版本
  • project(HelloWorld):项目名称
  • find_package(fmt CONFIG REQUIRED):查找 fmt 库
  • add_executable(HelloWorld helloworld.cpp):创建可执行文件
  • target_link_libraries(HelloWorld PRIVATE fmt::fmt):链接 fmt 库

4 - 构建与运行

  1. 通过菜单 Build > Build All 构建项目
  2. 运行可执行文件,输出:
Hello World!

下一步

了解更多 kmpkg.json 内容: