Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

vcpkg用法总结

在 C++ 开发中,管理第三方库一直是个麻烦事。依赖库版本、编译配置、跨平台兼容性……而 vcpkg 提供了一个统一、高效的解决方案,让 C++ 开发者可以像使用 npm、pip 一样轻松管理依赖。本文将介绍 vcpkg 的基本用法,并演示如何用它搭建 OpenGL 或物理引擎的测试平台。

什么是vcpkg

vcpkg 是微软推出的 C++ 包管理工具[1],主要特点:可以跨平台;通过命令行即可下载、编译和安装库;可与 Visual Studio、CMake 完美结合;可以指定库的版本、特性(features)和目标架构(triplets)。

vcpkg核心用法

  • 安装与环境配置:在需要安装位置,克隆其 GitHub 仓库并运行引导脚本,以Windows为例。
git clone https://github.com/microsoft/vcpkg
cd vcpkg
.\bootstrap-vcpkg.bat

运行脚本后,vcpkg可执行文件会被下载和编译,环境配置完成。

  • 经典模式和清单模式 vcpkg提供两种管理模式:
特性经典模式 (Classic Mode)清单模式 (Manifest Mode)
定义通过命令行 vcpkg install <package>通过项目根目录的 vcpkg.json 文件
安装位置全局安装到 vcpkg 根目录下的 installed/ 文件夹项目本地的 vcpkg_installed/ 文件夹
适用场景快速测试、全局工具安装、简单的单文件项目推荐用于所有正式项目,实现项目级依赖隔离和版本控制
版本控制依赖于 vcpkg 仓库的当前状态通过 vcpkg.jsonvcpkg-configuration.json 锁定版本基线

清单模式是现代 C++ 项目的推荐做法,它通过一个简单的 vcpkg.json 文件来声明项目所需的所有依赖,确保了项目在不同机器上的可重复构建性。

  • 常用命令详解
命令描述示例
vcpkg search <query>搜索可用的库包vcpkg search bullet
vcpkg install <package>安装指定的库包vcpkg install glfw3:x64-windows
vcpkg remove <package>卸载指定的库包vcpkg remove glfw3
vcpkg integrate install全局集成,用于 MSBuild 项目vcpkg integrate install
vcpkg new --application在当前目录创建 vcpkg.jsonvcpkg-configuration.jsonvcpkg new --application

最简单模式:vcpkg + Visual Studio + classic mode

这是最简单的使用模式,vcpkg 提供了用户范围的集成,实现了真正的“零配置”依赖管理。

  1. 安装vcpkg配置。

  2. 使用vcpkg install安装需要的库。

  3. 执行VS集成命令

vcpkg integrate install

这个命令只需要运行一次。它会在 Visual Studio 的配置中注入一个 MSBuild 属性表,使得 VS 能够自动识别 vcpkg 安装目录下的所有库。

  1. 直接在项目中的.cpp文件直接include需要文件即可,然后编译。

参考文献

[1] https://vcpkg.io/en/