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
禁止生成在安装结束时打印的使用情况文本。