vcpkg 使用
安装 vcpkg
-
安装 vcpkg:
cd C:\ git clone https://github.com/microsoft/vcpkg.git cd vcpkg .\bootstrap-vcpkg.bat
-
设置环境变量:
# 设置 VCPKG_ROOT,VCPKG_DEFAULT_TRIPLET,VCPKG_DEFAULT_HOST_TRIPLET [System.Environment]::SetEnvironmentVariable("VCPKG_ROOT", "C:\vcpkg", "Machine") [System.Environment]::SetEnvironmentVariable("VCPKG_DEFAULT_TRIPLET", "x64-mingw-dynamic", "Machine") [System.Environment]::SetEnvironmentVariable("VCPKG_DEFAULT_HOST_TRIPLET", "x64-mingw-dynamic", "Machine") # 设置 Path $currentPath = [System.Environment]::GetEnvironmentVariable("Path", "Machine") $newPath = "%VCPKG_ROOT%;$currentPath" [System.Environment]::SetEnvironmentVariable("Path", $newPath, "Machine")
测试
编译一个 HelloWorld 项目验证 vcpkg 安装。
-
安装 MinGW-w64。
-
初始化项目:
mkdir helloworld && cd helloworld vcpkg new --application vcpkg add port fmt
-
编辑 CMakeLists.txt:
vim 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)
-
编辑源码:
vim helloworld.cpp
#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }
-
编辑 CMake 预设文件:
vim CMakePresets.json # 编辑项目级配置
{ "version": 2, "configurePresets": [ { "name": "vcpkg", "generator": "MinGW Makefiles", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", "VCPKG_TARGET_TRIPLET": "x64-mingw-dynamic" } } ] }
vim CMakeUserPresets.json # 编辑用户自定义配置
{ "version": 2, "configurePresets": [ { "name": "default", "inherits": "vcpkg", "environment": { "VCPKG_ROOT": "C:\vcpkg" } } ] }
-
使用 CMake 配置生成:
cmake --preset=default cmake --build build
-
运行程序:
.\build\HelloWorld.exe
参考:通过 CMake 安装和使用包 | Microsoft Learn
PS:个人在轻度使用 vspkg 后,觉得不如 MSYS2 方便。比如我想安装 qtbase,发现它是从源码编译安装的。