【C++】在windows系统下安装 vcpkg工具

本文介绍在Windows平台上如何使用vcpkg工具来进行安装和验证C/C++库的过程。

vcpkg 概述

Vcpkg 是由 Microsoft 和 C++ 社区维护的免费开源 C/C++ 包管理器,可在 Windows、macOS 和 Linux 上运行。 它是核心的 C++ 工具,使用 C++ 和 CMake 脚本编写。 它旨在解决管理 C/C++ 库的独特难题。

为什么使用 vcpkg?

  1. 在特选注册表中有超过 2300 个开源库可供选择,这些库会定期生成,用于验证 ABI 兼容性
  2. 使用自己的自定义库包创建自定义库注册表
  3. 适用于 Windows、macOS 和 Linux 的一致的跨平台体验
  4. 使用任何生成和项目系统轻松将库添加到项目
  5. 从源生成依赖项或下载预生成的 ABI 验证二进制文件,默认提供 70 多个配置,并可针对特定要求进行无限自定义
  6. 通过独特的版本控制设计,防止依赖项之间出现版本冲突和菱形依赖问题
  7. 对于 MSBuild 和 CMake 用户:自动与生成环境集成,打造无缝获取依赖项的体验
  8. 受到学生、开源开发人员、业余爱好者和专业人士的信任,包括一些大型企业

vcpkg 功能

端口和三元组

vcpkg 端口是一种版本控制生成方案,可生成一个包。 最常见的包类型是包含标头、源代码和二进制文件的 C/C++ 库。
三元组以单个方便的名称捕获目标生成环境(cpu、os、编译器、运行时等)。 vcpkg 默认提供超过 70 个三元组,但你也可以定义自己的三元组。
为了在系统上安装包,vcpkg 会运行端口的配方文件(CMake 脚本)。 该脚本可能包含下载源代码或在系统中运行生成的步骤。 在生成期间,vcpkg 使用三元组中的信息来确保生成的包与所需的配置匹配。

以 libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static库为例;包括克隆vcpkg仓库、运行bootstrap脚本、执行安装步骤以及确认安装成功

先决条件

  1. 终端
  2. C++ 编译器
  3. CMake
  4. Git

设置 vcpkg

克隆存储库

第一步是从 GitHub 克隆 vcpkg 存储库。 存储库包含用于获取 vcpkg 可执行文件的脚本,以及由 vcpkg 社区维护的特选开放源代码库的注册表。
要执行此操作,先创建一个vcpkg安装目录;在该目录下,通过git-bash运行git命令:
git clone https://github.com/microsoft/vcpkg.git

vcpkg 特选注册表是一组数量超过 2000 个的开源库。 这些库已通过 vcpkg 的持续集成管道进行验证,可以协同工作。 虽然 vcpkg 存储库不包含这些库的源代码,但它保存方案和元数据,以便在系统中生成和安装它们。

运行启动脚本

现在,你已经克隆了 vcpkg 存储库,请导航到 vcpkg 仓库根目录并执行启动脚本:
打开控制台:
./bootstrap-vcpkg.bat
启动脚本执行先决条件检查并下载 vcpkg 可执行文件。

注意事项:

执行bootstrap-vcpkg.bat命令下载的vcpkg.exe不要移动到其他目录,否者会导致后续安装库报错。
本人就因为将可执行文件移到其他目录导致安装报错,如下:

PS C:\vcpkg> vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
error: Invalid triplet: x86-windows
Available architecture triplets:
vcpkg built-in triplets:
VCPKG community triplets:
PS C:\vcpkg>

安装库时会遇到的常见错误


PS C:\vcpkg> vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
Computing installation plan...
The following packages will be built and installed:
    aom:x64-windows-static@3.9.1
  * libjpeg-turbo:x64-windows-static@3.0.3#1
    libvpx:x64-windows-static@1.13.1#3
    libyuv:x64-windows-static@1895
    opus:x64-windows-static@1.5.1
  * pkgconf:x64-windows@2.3.0
  * vcpkg-cmake-config:x64-windows@2024-05-23
  * vcpkg-msbuild:x64-windows@2023-08-08
  * vcpkg-pkgconfig-get-modules:x64-windows@2024-04-03
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-windows...
Compiler found: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
Detecting compiler hash for triplet x64-windows-static...
Compiler found: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
Restored 0 package(s) from C:\Users\ygh\AppData\Local\vcpkg\archives in 184 us. Use --debug to see more details.
Installing 1/9 vcpkg-cmake-config:x64-windows@2024-05-23...
Building vcpkg-cmake-config:x64-windows@2024-05-23...
-- Installing: C:/vcpkg/packages/vcpkg-cmake-config_x64-windows/share/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake
-- Installing: C:/vcpkg/packages/vcpkg-cmake-config_x64-windows/share/vcpkg-cmake-config/vcpkg-port-config.cmake
-- Installing: C:/vcpkg/packages/vcpkg-cmake-config_x64-windows/share/vcpkg-cmake-config/copyright
-- Skipping post-build validation due to VCPKG_POLICY_EMPTY_PACKAGE
Stored binaries in 1 destinations in 28 ms.
Elapsed time to handle vcpkg-cmake-config:x64-windows: 84.5 ms
vcpkg-cmake-config:x64-windows package ABI: 8d72e9c5827325f2468c8bf4c336a2d193117bbe3019164799832410dd388ec6
Installing 2/9 aom:x64-windows-static@3.9.1...
Building aom:x64-windows-static@3.9.1...
-- Fetching https://aomedia.googlesource.com/aom 8ad484f8a18ed1853c094e7d3a4e023b2a92df28...
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:127 (message):
    Command failed: "C:/Program Files/Git/cmd/git.exe" fetch https://aomedia.googlesource.com/aom 8ad484f8a18ed1853c094e7d3a4e023b2a92df28 --depth 1 -n
    Working Directory: C:/vcpkg/downloads/git-tmp
    Error code: 128
    See logs for more information:
      C:\vcpkg\buildtrees\aom\git-fetch-x64-windows-static-err.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_from_git.cmake:86 (vcpkg_execute_required_process)
  ports/aom/portfile.cmake:1 (vcpkg_from_git)
  scripts/ports.cmake:192 (include)


error: building aom:x64-windows-static failed with: BUILD_FAILED
See https://learn.microsoft.com/vcpkg/troubleshoot/build-failures?WT.mc_id=vcpkg_inproduct_cli for more information.
Elapsed time to handle aom:x64-windows-static: 21 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
  https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+aom
You can submit a new issue at:
  https://github.com/microsoft/vcpkg/issues/new?title=[aom]+Build+error+on+x64-windows-static&body=Copy+issue+body+from+C%3A%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md

如上在第三十行“Fetching https://aomedia.googlesource.com/aom 8ad484f8a18ed1853c094e7d3a4e023b2a92df28…”处报错;这是因为在国内无法访问到 https://aomedia.googlesource.com/aom 地址(当然如果你的环境如果能访问到该地址则不会出现这样问题)。如果有相同的问题这就需要我们从github上或者gitee上找到与之相同的克隆库地址进行替换(替换文件位置:根目录下的“./ports/aom/portfile.cmake”与“./ports/aom/vcpkg.json”)。

vcpkg仓库跳转链接

github
国内镜像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗羊羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值