vcpkg使用方法
vcpkg 的官方教程网页
https://learn.microsoft.com/zh-cn/vcpkg/get_started/get-started?pivots=shell-powershell
vcpkg 的两种使用模式
- 经典模式,通过依次输入命令
vcpkg install 你需要的库一个一个手动下载库文件。 - 清单模式,vcpkg 会读取当前路径下
vcpkg.json中的配置自动下载库文件。
vcpkg 的使用方法
现代 vcpkg 更推荐使用清单模式,所以本文仅介绍清单模式的使用方式
- 根据教程下载和安装 vcpkg,国内可以从 https://gitee.com/JackBoosY/vcpkg.git 网址下载 vcpkg。
- 在当前计算机中添加环境变量
VCPKG_DOWNLOAD_MIRROR,用于加速 vcpkg 下载库文件。(有效性未知)VCPKG_DOWNLOAD_MIRROR = "https://bgithub.xyz" - 创建 cmake 项目,编辑文件
CMakeLists.txt在函数 project() 之前,加入下面这句话:
cmake 构建时会自动调用 vcpkg 安装set(CMAKE_TOOLCHAIN_FILE "C:/Program Files/Microsoft Visual Studio/18/Community/VC/vcpkg/scripts/buildsystems/vcpkg.cmake")vcpkg.json中所声明的库文件,其中C:/Program Files/Microsoft Visual Studio/18/Community/VC/vcpkg/scripts/buildsystems/vcpkg.cmake要替换成你的 vcpkg.cmake 的路径。 - 在
CMakeLists.txt的同级目录下, 添加文件vcpkg.json和vcpkg-configuration.json。 - 可以通过修改文件
vcpkg.json添加所需要的库文件。
文件 vcpkg.json 用途
用于管理 vcpkg 的依赖,vcpkg 会读取该文件,自动下载属性 dependencies 中的添加的库文件,如果没有属性 builtin-baseline 的话需要额外添加文件 vcpkg-configuration.json。
不使用文件vcpkg-configuration.json 下,典型的 vcpkg.json 文件内容:
{
"name": "your-project-name",
"version": "1.0.0",
"dependencies": [
"fmt",
"fftw3"
],
"builtin-baseline": "544a4c5c297e60e4ac4a5a1810df66748d908869"
}
使用文件vcpkg-configuration.json 下,典型的 vcpkg.json 文件内容:
{
"name": "your-project-name",
"version": "1.0.0",
"dependencies": [
"fmt",
"fftw3"
]
}
文件 vcpkg-configuration.json 用来解决 vcpkg 获取注册表信息慢的问题
如果 vcpkg 出现下面选项,获取信息很慢的话,可以在和 vcpkg.json 文件同级目录下新增文件 vcpkg-configuration.json
Fetching registry information from https://github.com/microsoft/vcpkg (HEAD)...
添加下面内容,注意属性 baseline 中的值决定了 vcpkg.json 所安装的库文件版本。因为 vcpkg 会根据该信息查找 vcpkg 仓库的文件夹 ports ,而文件夹 ports 存储了库文件的版本及描述信息,baseline 则决定了使用哪次 commit 。
典型的 vcpkg-configuration.json 文件内容
{
"default-registry": null,
"registries": [
{
"kind": "git",
"repository": "https://gitee.com/JackBoosY/vcpkg.git",
"baseline": "4497409a47f19db373a410a0efb84eca4747adbf",
"packages": [
"*"
]
}
]
}
属性 baseline和 builtin-baseline 的作用
属性 baseline和 builtin-baseline 中的值决定了 vcpkg.json 所安装的库文件版本。因为 vcpkg 会使用该提交对象哈希值确定 vcpkg 使用哪次 commit,文件夹 ports 存储了库文件的版本及描述信息,不同 commit 的文件夹 ports 中的内容会发生改变。
文件 vcpkg.json 和 vcpkg-configuration.json 中的 baseline和 builtin-baseline 的值是什么?
baseline和 builtin-baseline 实际上就是 git commit 时产生的 40 位提交对象哈希值
如何获取属性 baseline和 builtin-baseline 最新的值
方法1. 删除文件 vcpkg.json 中的属性 builtin-baseline 和文件 vcpkg-configuration.json,输入命令vcpkg --add-initial-baseline x-update-baseline 添加初始值,再次输入命令 vcpkg x-update-baseline 可以获取罪行获取提交对象哈希值。
方法2.如果是 gitee 的话,浏览器访问 https://gitee.com/JackBoosY/vcpkg.git, 按照图中所示就可以获取的最新的提交对象哈希值。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)