vcpkg 安装

概要

  • 经典模式
vcpkg install [options] <package>...
  • 清单模式
vcpkg install [options]

描述

生成并安装端口包。

经典模式

经典模式中,此谓词将端口包添加到 安装目录 中的现有集(默认为 vcpkg 根目录下 installed/)。 这可能需要删除和重新生成现有包,这可能会失败。

包语法

portname[feature1,feature2]:triplet

不带三元的包引用由 默认目标三元自动限定。 未显式列出 core 的包引用被视为暗示所有默认功能。

清单模式

清单模式中,此命令将安装 的目录 设置为由 vcpkg.json 清单文件指定的状态,根据需要添加、删除或重新生成包。

选项

所有 vcpkg 命令都支持一组 常见选项

--allow-unsupported

不要在不支持的端口上停止,而是继续发出警告。

默认情况下,vcpkg 拒绝执行安装计划,其中包含其 "supports" 子句之外的三重组件的端口安装。 包的 "supports" 子句描述了包应可构建的完整平台集。 此标志指示 vcpkg 警告生成预期会失败,而不是停止。

--clean-after-build

生成每个包后,清理生成树、包和下载。

此选项的效果与传递 --clean-buildtrees-after-build--clean-downloads-after-build--clean-packages-after-build相同。

--clean-buildtrees-after-build

在生成每个包后,清除 buildtrees 临时子文件夹中的所有子目录。

将保留 buildtrees 子文件夹中的所有顶级文件(例如 buildtrees/zlib/config-x64-windows-out.log)。 将删除所有子目录。

--clean-downloads-after-build

生成每个包后,从 downloads/ 文件夹中清除所有未收回的资产。

将删除 downloads/ 文件夹中的所有顶级文件。 将保留提取的工具。

--clean-packages-after-build

生成每个包后清理包临时子文件夹。

安装后,将删除生成的包的包子文件夹(例如,packages/zlib_x64-windows)。

--dry-run

打印安装计划,但不删除或安装任何包。

安装计划列出了将安装的所有包和功能,以及需要删除和重新生成的任何其他包。

--editable

  • 经典模式

对命令行上所有直接引用的包执行可编辑生成。

vcpkg 生成端口时,每次都会清除并重新提取源代码,以确保输入准确无误。 清单模式必须正确更新已安装的内容和二进制缓存,以确保缓存的内容正确无误。

传递 --editable 标志将禁用此行为,从而保留对 buildtrees/ 文件夹中提取的源的编辑。 这有助于通过避免在每个更改上编写文件来快速开发修补程序。

在可编辑生成期间提取的源在目录名称上没有 .clean/ 后缀,后续不可编辑的生成不会清除。

--enforce-port-checks

如果端口检测到问题或尝试使用已弃用的功能,则安装失败。

默认情况下,vcpkg 将对生成的包运行多个检查,并在检测到任何问题时发出警告。 此标志将这些警告升级到错误。

--x-feature=<feature>

注意

本部分介绍 vcpkg 的实验性功能,该功能随时可能会更改或删除。

  • 清单模式

vcpkg.json 指定用于安装依赖项的其他 功能

默认情况下,只会安装 "dependencies""default-features" 的依赖项。

--head

  • 经典模式

请求命令行上显式引用的所有包,以提取生成时可用的最新源。

此标志仅用于临时测试,不适用于生产或长期使用。 这会为所有显式引用的包及其依赖项禁用 二进制缓存,因为 vcpkg 无法准确跟踪所有输入。

--keep-going

在第一次失败后继续安装计划。

默认情况下,vcpkg 将在第一次包生成失败时停止。 此标志指示 vcpkg 继续生成并安装不依赖于失败包的安装计划的其他部分。

--x-no-default-features

注意

本部分介绍 vcpkg 的实验性功能,该功能随时可能会更改或删除。

  • 清单模式

不要从顶级清单安装默认功能。

在清单模式下使用 install 时,默认情况下将安装 "default-features" 中列出的功能的所有依赖项。 此标志禁用该行为,因此将仅安装由 --x-feature 显式启用的功能。

--no-downloads

生成包时,防止端口在生成过程中下载新资产。

默认情况下,端口将从 Internet 按需获取源代码和工具(受 资产缓存的约束)。 此参数阻止下载并将端口限制为仅在计算机上下载和缓存的资产。

--only-downloads

尝试下载安装计划所需的所有资产,而无需执行任何生成。

传递此选项后,vcpkg 将在计划中运行每个生成,直到它进行第一次非下载外部进程调用。 大多数端口在第一个外部进程调用(通常是对其生成系统)之前执行所有下载,因此此过程将下载所有必需的资产。 不遵循此过程的端口不会预先下载其资产。

--only-binarycaching

拒绝执行任何生成。 仅从 二进制缓存还原包

此标志阻止 vcpkg 按需执行生成,如果任何二进制缓存中找不到包,将失败。

--recurse

  • 经典模式

批准需要重新生成包的安装计划。

若要修改已安装包的一组功能,vcpkg 必须删除并重新生成该包。 由于这可能会失败,并且使安装树的包少于用户启动的包数,因此用户必须通过传递此标志来批准重新生成包的计划。

--x-write-nuget-packages-config

注意

本部分介绍 vcpkg 的实验性功能,该功能随时可能会更改或删除。

写出 NuGet packages.config格式化文件,以用于 二进制缓存

此选项可与 --dry-run 结合使用,以获取二进制缓存所需的 NuGet 包列表,而无需生成或安装任何包。 这使 NuGet 命令行能够针对高级方案单独调用,例如使用备用协议来获取 .nupkg 文件。

--no-print-usage

禁止生成在安装结束时打印的使用情况文本。