安装 vcpkg

1
2
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg && bootstrap-vcpkg.bat

安装VSCode扩展插件

在VS Code 左边工具栏找到下面图标,安装以下两个插件
1710500106627
1710500030611

1710500041575

配置 vcpkg

  1. 环境设置
    配置 VCPKG_ROOT 环境变量,打开命令行窗口
    将下面的 “C:\path\to\” 改成实际路径
1
2
set "VCPKG_ROOT=C:\path\to\vcpkg"
set PATH=%VCPKG_ROOT%;%PATH%
  1. 进入测试项目目录 如:hello
    运行:
1
2
3
mkdir hello
cd hello
vcpkg new --application

会看到 vcpkg.json 文件如下所示:

1
2
3
4
5
6
7
{
"dependencies": [
"fmt"
]
}
说明:这是您的清单文件。vcpkg 读取清单文件以了解要安装哪些依赖项,并与 MSBuild 集成以提供项目所需的依赖项。

  1. 添加依赖库
1
vcpkg add port fmt
  1. 创建项目配置文件 CMakeLists.txt
1
2
3
4
5
6
7
8
9
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)

现在,让我们分解一下文件中每一行的CMakeLists.txt作用:

cmake_minimum_required(VERSION 3.10):指定构建项目所需的 CMake 最低版本为 3.10。如果系统上安装的 CMake 版本低于此版本,则会生成错误。
project(HelloWorld):将项目名称设置为“HelloWorld”。
find_package(fmt CONFIG REQUIRED)fmt:使用 CMake 配置文件查找库。该REQUIRED关键字确保在找不到包时生成错误。
add_executable(HelloWorld main.cpp):添加一个名为“HelloWorld”的可执行目标,该目标是从源文件构建的main.cpp。
target_link_libraries(HelloWorld PRIVATE fmt::fmt):指定 HelloWorld可执行文件应链接到fmt库。该PRIVATE 关键字表示fmt仅用于构建HelloWorld,不应传播到其他依赖项目。

  1. 创建 helloworld.cpp文件
1
2
3
4
5
6
7
#include <fmt/core.h>

int main()
{
fmt::print("Hello World!\n");
return 0;
}
  1. 创建 CMakePresets.json 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"version": 3,
"configurePresets": [
{
"name": "vcpkg",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"value": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
"type": "FILEPATH"
}
}
}
]
}

说明:为了允许 CMake 项目系统识别 vcpkg 提供的 C++ 库,需要提供vcpkg.cmake工具链文件。自动执行此操作

  1. 在 hello 目录下创建 CMakeUserPresets.json
1
2
3
4
5
6
7
8
9
10
11
12
{
"version": 3,
"configurePresets": [
{
"name": "default",
"inherits": "vcpkg",
"environment": {
"VCPKG_ROOT": "<path to vcpkg>"
}
}
]
}

备注: <path to vcpkg> 修改自己的vcpkg实际安装目录

8.编译运行
使用快捷键 CTRL+SHIFT+P 在输入框中运行 CMake: Build
1710499667326

启动程序
1710499807519

参考文档:

https://learn.microsoft.com/en-us/vcpkg/get_started/get-started-vscode?pivots=shell-cmd#1---set-up-vcpkg