Vcpkg - C++包管理工具的基本配置

1 安装

1.1 下载包文件

1
git clone https://github.com/microsoft/vcpkg.git

1.2 执行安装文件

1
2
3
cd .\vcpkg\
.\bootstrap-vcpkg.bat
# Linux执行bootstrap-vcpkg.sh文件

此时,在vcpkg文件夹下会生成vcpkg.exe文件

1.3 配置环境变量

VCPKG_ROOT - "C:\ENVIRONMENT\CPP\vcpkg"

PATH - 添加 %VCPKG_ROOT%

2 使用

2.1 常用命令

1
2
3
4
5
6
7
8
9
查找可用的库:vcpkg search <library_name>
查看支持的架构:vcpkg help triplet
指定编译某种架构的程序库:vcpkg install xxxx:x64-windows(x86-windows)
卸载已安装库:vcpkg remove xxxx
指定卸载平台:vcpkg remove xxxx:x64-windows
移除所有旧版本库:vcpkg remove --outdated
查看已经安装的库:vcpkg list
更新已经安装的库:vcpkg update xxx
导出已经安装的库:vcpkg export xxxx --7zip(–7zip –raw –nuget –ifw –zip)

2.2 Visual Studio 2022 集成

**方式1.**单独为项目添加依赖

1
2
3
4
5
# 创建清单文件 - 生成文件vcpkg.json
vcpkg new --application

#为项目添加依赖 - 此时vcpkg.json会包含fmt
vcpkg add port fmt

方式2.集成进vs,自动导入包

1
2
3
集成到全局:vcpkg integrate install
移除全局:vcpkg integrate remove
集成到工程:vcpkg integrate project(在“\scripts\buildsystems”目录下,生成nuget配置文件)

2.3 (推荐) CMake集成

创建CMakeLists.txt文件

1
2
3
4
5
6
7
#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 最低版本为 3.10。 如果系统上安装的 CMake 版本低于此版本,则将生成错误。
  • project(HelloWorld):将项目的名称设置为 “HelloWorld."。
  • find_package(fmt CONFIG REQUIRED):使用 fmt 库的 CMake 配置文件查找该库。 REQUIRED 关键字确保在找不到包时生成错误。
  • add_executable(HelloWorld helloworld.cpp):添加从源文件 helloworld.cpp 生成的名为 “HelloWorld,” 的可执行目标。
  • target_link_libraries(HelloWorld PRIVATE fmt::fmt):指定 HelloWorld 可执行文件应链接到 fmt 库。 PRIVATE 关键字表明 fmt 仅在生成 HelloWorld 时需要,不应传播到其他依赖项目。

这样在使用CMake编译时只需要添加参数-DCMAKE_TOOLCHAIN_FILE="[path to vcpkg]/scripts/buildsystems/vcpkg.cmake"

1
2
#例
cmake -B build -DCMAKE_TOOLCHAIN_FILE="C:\ENVIRONMENT\CPP\vcpkg\scripts\buildsystems\vcpkg.cmake"