【包管理器】vcpkg

 1. vcpkg 介绍      

        vcpkg 是用于 C++ 的一种命令行包管理器。 它极大地简化了 Windows、Linux 和 MacOS 上第三方库的购置与安装。 如果项目要使用第三方库,建议通过 vcpkg 来安装它们。 vcpkg 同时支持开源和专有库。 已测试 vcpkg Windows 目录中所有库与 Visual Studio 2015、Visual Studio 2017 及 Visual Studio 2019 的兼容性。 在 Windows 和 Linux/MacOS 目录之间,vcpkg 现已支持超过 1900 个库。 C++ 社区正在不断向两个目录添加更多的库。一台计算机上可以有多个 vcpkg 克隆。 每一克隆都可以设置为生成带有你首选的编译开关的自定义库集合。 每个克隆都是一个自包含的环境,它自身的 vcpkg.exe 副本仅可在自己的层次结构中运行。 vcpkg 不会被添加到任何环境变量中,并且在 Windows 注册表或 Visual Studio 上也没有依赖项。

        对于 Windows 目录中的库,vcpkg 会下载源,而不是二进制文件。 它使用可以找到的最新版 Visual Studio 编译这些源代码。 在 C++ 中,有一点至关重要,即你的应用程序代码以及你所使用的任何库应均是由同一编译器和编译器版本编译的。 通过 vcpkg 可以消除或最大程度减少不匹配二进制文件的存在风险及它可能造成的问题。 对于使用特定编译器版本的标准化团队而言,可让一位成员使用 vcpkg 下载源并编译一组二进制文件。 他们随后可以使用导出命令将二进制文件和标头进行压缩打包,从而与其他团队成员共享。

2. vcpkg 用法

安装:从 GitHub 克隆 vcpkg 存储库:https://github.com/Microsoft/vcpkg。 可凭喜好下载到任意文件夹位置。

在根文件夹中运行 bootstrapper:

  • bootstrap-vcpkg.bat (Windows)
  • ./bootstrap-vcpkg.sh (Linux、MacOS)

命令:对于 CMAKE 项目,通过 CMAKE_TOOLCHAIN_FILE 来配合使用库和 find_package()。 例如:

卸载:只需删除 vcpkg 目录。 删除此目录会卸载 vcpkg 分发以及 vcpkg 已安装的所有库。

 
命令描述
vcpkg search [pat]搜索可安装的包
vcpkg install <pkg>... curl:x64-windows安装包curl包分号后面的表示架构
vcpkg remove <pkg>...卸载包
vcpkg remove --outdated卸载所有过期包
vcpkg list列出已安装的包
vcpkg update显示用于更新的包列表
vcpkg upgrade重新生成所有过期包
vcpkg hash <file> [alg]通过特定算法对文件执行哈希操作,默认为 SHA512
vcpkg integrate install使已安装包在用户范围内可用。 首次使用时需要管理权限
vcpkg integrate remove删除用户范围的集成
vcpkg integrate project为使用单个 VS 项目生成引用 NuGet 包
vcpkg export <pkg>... [opt]...导出包
vcpkg edit <pkg>打开端口进行编辑(使用 %EDITOR%,默认为“code”)
vcpkg create <pkg> <url> [archivename]创建新程序包
vcpkg cache列出缓存的已编译包
vcpkg version显示版本信息
vcpkg contact --survey显示联系信息,以便发送反馈。

3. vcpkg 文件结构

所有 vcpkg 功能和数据都自包含在称为“实例”的单独目录层次结构中。 没有注册表设置或环境变量。 可以在一台计算机上设置任意数量的 vcpkg 实例,它们彼此互不干扰。

vcpkg 实例的内容如下:

  • buildtrees - 包含从中生成每个库的源的子文件夹
  • docs - 文档和示例
  • downloads - 任何已下载工具或源的缓存副本。 运行安装命令时,vcpkg 会首先搜索此处。
  • installed - 包含每个已安装库的标头和二进制文件。 与 Visual Studio 集成时,实质上是相当于告知它将此文件夹添加到其搜索路径。
  • packages - 在不同的安装之间用于暂存的内部文件夹。
  • ports - 用于描述每个库的目录、版本和下载位置的文件。 如有需要,可添加自己的端口。
  • scripts - 由 vcpkg 使用的脚本(cmake、powershell)。
  • toolsrc - vcpkg 和相关组件的 C++ 源代码
  • triplets - 包含每个受支持目标平台(如 x86-windows 或 x64-uwp)的设置。

学习于:https://docs.microsoft.com/zh-cn/cpp/build/vcpkg?view=vs-2019

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

路途…

点滴记录

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

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

打赏作者

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

抵扣说明:

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

余额充值