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.json 和 vcpkg-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.json 和 vcpkg-configuration.json | vcpkg new --application |
最简单模式:vcpkg + Visual Studio + classic mode
这是最简单的使用模式,vcpkg 提供了用户范围的集成,实现了真正的“零配置”依赖管理。
-
安装vcpkg配置。
-
使用
vcpkg install安装需要的库。 -
执行VS集成命令
vcpkg integrate install
这个命令只需要运行一次。它会在 Visual Studio 的配置中注入一个 MSBuild 属性表,使得 VS 能够自动识别 vcpkg 安装目录下的所有库。
- 直接在项目中的
.cpp文件直接include需要文件即可,然后编译。
参考文献
[1] https://vcpkg.io/en/