跳转到内容

附录

A. vcpkg 命令参考

基本命令

命令说明示例
vcpkg search <pattern>搜索包vcpkg search json
vcpkg install <package>安装包vcpkg install fmt
vcpkg install <package>:<triplet>安装指定三元组的包vcpkg install fmt:x64-linux
vcpkg remove <package>删除包vcpkg remove fmt
vcpkg remove --purge <package>完全删除包(包括构建文件)vcpkg remove --purge fmt
vcpkg remove --outdated删除过期的包vcpkg remove --outdated
vcpkg list列出已安装的包vcpkg list
vcpkg list --triplet=<triplet>列出指定三元组的包vcpkg list --triplet=x64-linux
vcpkg update更新 vcpkg 工具本身vcpkg update
vcpkg upgrade升级已安装的包vcpkg upgrade
vcpkg upgrade <package>升级指定包vcpkg upgrade fmt
vcpkg integrate install集成到用户全局配置vcpkg integrate install
vcpkg integrate remove移除用户全局配置vcpkg integrate remove
vcpkg integrate project生成项目集成文件vcpkg integrate project

信息查询命令

命令说明示例
vcpkg show <package>显示包的详细信息vcpkg show fmt
vcpkg depend-info <package>显示包的依赖信息vcpkg depend-info fmt
vcpkg depend-info <package> --recurse显示递归依赖vcpkg depend-info fmt --recurse
vcpkg version显示 vcpkg 版本信息vcpkg version
vcpkg hash <file>计算文件的哈希值vcpkg hash archive.zip
vcpkg x-history <package>显示包的版本历史vcpkg x-history fmt

构建命令

命令说明示例
vcpkg build <package>构建包但不安装vcpkg build fmt
vcpkg build <package>:<triplet>构建指定三元组的包vcpkg build fmt:x64-linux
vcpkg build --overlay-ports=<path>使用 Overlay 构建包vcpkg build my-lib --overlay-ports=./overlays
vcpkg build --binarysource=<source>指定二进制源vcpkg build fmt --binarysource=default,readwrite

下载命令

命令说明示例
vcpkg download <package>下载包的源码vcpkg download fmt
vcpkg download --all下载所有依赖的源码vcpkg download --all

调试命令

命令说明示例
vcpkg install <package> --debug启用调试模式vcpkg install fmt --debug
vcpkg install <package> --debug-each启用更详细的调试vcpkg install fmt --debug-each
vcpkg env显示环境变量vcpkg env

实验性命令

命令说明示例
vcpkg x-add-version <package>为包添加版本信息vcpkg x-add-version fmt
vcpkg x-format-manifest <file>格式化 vcpkg.jsonvcpkg x-format-manifest vcpkg.json
vcpkg x-vsinstances列出 Visual Studio 实例vcpkg x-vsinstances
vcpkg x-ci-clean清理 CI 环境vcpkg x-ci-clean

常用选项

选项说明示例
--triplet=<triplet>指定三元组vcpkg install fmt --triplet=x64-linux
--overlay-ports=<path>指定 Overlay 路径vcpkg install fmt --overlay-ports=./overlays
--overlay-triplets=<path>指定自定义三元组路径vcpkg install fmt --overlay-triplets=./triplets
--recurse递归处理依赖vcpkg install fmt --recurse
--dry-run模拟运行,不实际执行vcpkg install fmt --dry-run
--force-rebuild强制重新构建vcpkg install fmt --force-rebuild
--no-binarycaching禁用二进制缓存vcpkg install fmt --no-binarycaching
--binarysource=<source>指定二进制源vcpkg install fmt --binarysource=default,readwrite

B. 常用三元组列表

Windows 三元组

三元组说明编译器链接类型
x64-windows64 位 WindowsMSVC动态
x86-windows32 位 WindowsMSVC动态
x64-windows-static64 位 WindowsMSVC静态
x86-windows-static32 位 WindowsMSVC静态
x64-uwp64 位 UWPMSVC动态
x86-uwp32 位 UWPMSVC动态
arm64-windowsARM64 WindowsMSVC动态
arm-uwpARM UWPMSVC动态
arm64-uwpARM64 UWPMSVC动态

Linux 三元组

三元组说明编译器链接类型
x64-linux64 位 LinuxGCC/Clang动态
x64-linux-static64 位 LinuxGCC/Clang静态
arm64-linuxARM64 LinuxGCC/Clang动态
arm-linuxARM LinuxGCC/Clang动态
x64-linux-musl64 位 Linux (musl)GCC/Clang动态
arm-linux-musleabihfARM Linux (musl)GCC/Clang动态
ppc64le-linuxPowerPC64 LinuxGCC/Clang动态

macOS 三元组

三元组说明编译器链接类型
x64-osxIntel macOSClang动态
arm64-osxApple Silicon macOSClang动态
universal-osx通用二进制Clang动态

Android 三元组

三元组说明架构
arm64-androidARM64 AndroidARM64
arm-androidARM AndroidARM
x86_64-androidx86_64 Androidx86_64
x86-androidx86 Androidx86

iOS 三元组

三元组说明架构
arm64-iosARM64 iOSARM64
arm64-ios-simulatorARM64 iOS SimulatorARM64
x64-iosx64 iOS Simulatorx64_64
x86-iosx86 iOS Simulatorx86

WebAssembly 三元组

三元组说明
wasm32-emscriptenWebAssembly (Emscripten)

C. 相关资源链接

官方资源

社区资源

学习资源

相关工具

端口仓库

问题反馈

许可证


D. 环境变量参考

vcpkg 环境变量

变量说明默认值
VCPKG_ROOTvcpkg 安装目录-
VCPKG_DEFAULT_TRIPLET默认三元组平台相关
VCPKG_OVERLAY_PORTSOverlay 端口路径-
VCPKG_OVERLAY_TRIPLETS自定义三元组路径-
VCPKG_DOWNLOADS下载缓存目录$VCPKG_ROOT/downloads
VCPKG_BINARY_SOURCES二进制缓存配置-
VCPKG_MAX_CONCURRENCY最大并行度CPU 核心数
VCPKG_MAINTAINER_MODE启用维护模式0
VCPKG_KEEP_ENV_VARS保留的环境变量-

CMake 环境变量

变量说明默认值
CMAKE_TOOLCHAIN_FILECMake toolchain 文件路径-
CMAKE_BUILD_TYPE构建类型Release
CMAKE_INSTALL_PREFIX安装前缀-

编译器环境变量

变量说明默认值
CCC 编译器gcc / clang
CXXC++ 编译器g++ / clang++
CFLAGSC 编译选项-
CXXFLAGSC++ 编译选项-
LDFLAGS链接器选项-

E. 目录结构参考

vcpkg 目录结构

vcpkg/
├── buildtrees/          # 构建树(源码和中间文件)
├── downloads/           # 下载的源码压缩包
├── installed/           # 已安装的包
│   ├── x64-linux/      # Linux 64 位安装目录
│   │   ├── include/    # 头文件
│   │   ├── lib/        # 库文件
│   │   ├── share/      # CMake 配置文件
│   │   └── bin/        # 可执行文件
│   ├── x64-windows/    # Windows 64 位安装目录
│   └── arm64-osx/      # macOS ARM64 安装目录
├── ports/              # 端口定义
│   ├── fmt/
│   ├── spdlog/
│   └── ...
├── scripts/            # 构建脚本
│   ├── buildsystems/   # 构建系统工具链
│   │   └── vcpkg.cmake
│   └── ...
├── triplets/           # 三元组定义
│   ├── x64-linux.cmake
│   ├── x64-windows.cmake
│   └── ...
├── versions/           # 版本数据库
│   └── baseline.json
├── vcpkg               # 主可执行文件
└── vcpkg.json          # 全局配置(可选)

项目目录结构(使用 vcpkg)

my-project/
├── CMakeLists.txt      # CMake 配置文件
├── vcpkg.json          # vcpkg 依赖清单
├── README.md           # 项目说明
├── src/                # 源代码
│   ├── main.cpp
│   └── ...
├── include/            # 头文件
│   └── ...
├── tests/              # 测试代码
│   └── ...
├── docs/               # 文档
│   └── ...
├── build/              # 构建输出目录(gitignore)
├── vcpkg/              # vcpkg 子模块(可选)
│   └── ...
└── overlays/           # 自定义端口(可选)
    └── ports/
        └── ...

F. 常用端口示例

基础库

包名说明CMake 目标
fmt格式化库fmt::fmt
spdlog日志库spdlog::spdlog
nlohmann-jsonJSON 库nlohmann_json::nlohmann_json
catch2测试框架Catch2::Catch2
gtest测试框架GTest::gtest
benchmark性能测试benchmark::benchmark

网络库

包名说明CMake 目标
boost-asio异步网络库Boost::asio
curlHTTP 客户端CURL::libcurl
opensslSSL/TLS 库OpenSSL::SSL, OpenSSL::Crypto
libwebsocketsWebSocket 库websockets::websockets

数据库

包名说明CMake 目标
sqlite3SQLite 数据库sqlite3
libpqPostgreSQL 客户端PostgreSQL::PostgreSQL
mysqlMySQL 客户端mysqlclient
mongodbMongoDB 客户端mongo::mongoc_shared

图形和媒体

包名说明CMake 目标
opencv计算机视觉库opencv_core, opencv_highgui
freetype字体渲染库freetype
libpngPNG 图像库png
libjpeg-turboJPEG 图像库jpeg
ffmpeg音视频处理库ffmpeg

数学和科学计算

包名说明CMake 目标
eigen3线性代数库Eigen3::Eigen
boost-math数学库Boost::math
gsl科学计算库gsl::gsl
armadillo线性代数库armadillo

G. 快速参考卡片

安装和配置

bash
# 克隆 vcpkg
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh  # Linux/macOS
.\bootstrap-vcpkg.bat  # Windows

# 集成到系统
./vcpkg integrate install

基本使用

bash
# 搜索包
vcpkg search <pattern>

# 安装包
vcpkg install <package>

# 列出已安装的包
vcpkg list

# 删除包
vcpkg remove <package>

CMake 集成

cmake
# CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(MyProject)

find_package(<package> CONFIG REQUIRED)
add_executable(my_app main.cpp)
target_link_libraries(my_app PRIVATE <package>::<target>)
bash
# 构建命令
cmake -B build -S . \
  -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build

调试

bash
# 启用调试模式
vcpkg install <package> --debug

# 查看构建日志
cat /path/to/vcpkg/buildtrees/<package>/build-*.log

# 清理缓存
vcpkg remove --outdated
rm -rf /path/to/vcpkg/buildtrees/*

教程到此结束。希望这份教程能帮助你掌握 vcpkg 的使用!

如有问题或建议,欢迎反馈:

祝你使用愉快!

基于 MIT 许可发布