概要
vcpkg export [options] {<package>... | --x-all-installed}
Description
将生成的包从 已安装的目录 导出到独立的开发人员 SDK。
export 生成可在另一台计算机上使用的独立可分发 SDK(软件开发工具包),而无需单独获取 vcpkg。 该结构包含:
- 所选包的预生成二进制文件
- 它们的可传递依赖项
- 集成文件,例如 CMake 工具链 或 MSBuild 属性/目标
此命令 export 不会安装任何包或可传递依赖项。 它仅导出已安装的包。
经典模式
在经典模式下,vcpkg export接受三重限定的包规范参数(例如: zlib:x64-windows
可以通过将参数添加到 <port name>:<triplet> 命令行来指定要导出的包。
例如,若要导出包 sqlite , x64-windows 请使用 x64-linux:
vcpkg export sqlite:x64-windows sqlite:x64-linux --zip
此命令以 zip 格式导出指定的包。 在sqlite:x64-windows运行vcpkg export之前,必须同时安装并且sqlite:x64-linux必须安装。
清单模式
在清单模式下,命令导出当前安装的所有包。 安装目录包括清单(vcpkg.json)中声明的所有包及其可传递依赖项。 使用此命令之前运行 vcpkg install ,以确保已安装所有必需的包。
在此模式下,无法指定要导出的单个包。 该命令以单个实体的形式对整个已安装状态进行作,并遵循清单文件中指定的依赖项和版本。
另一个区别是选项的要求 --output-dir 。 此选项指定将存储导出包的目录。
例如,从清单目录中
vcpkg export --zip --output-dir=.\exports
将所有当前安装的包导出到 zip 文件中的 .\exports 目录。 该 --zip 选项指定应将导出的包压缩到 zip 文件中。
标准集成
大多数导出格式都包含一组标准集成文件:
-
CMake 工具链
/scripts/buildsystems/vcpkg.cmake -
MSBuild 属性/目标 位于
/scripts/buildsystems/msbuild/vcpkg.props和/scripts/buildsystems/msbuild/vcpkg.targets - 安装 树 位于
/
某些导出格式不同于此标准集;有关更多详细信息,请参阅下面的单个格式帮助。
格式
官方支持的 SDK 格式:
原始目录
vcpkg export --raw [options] <package>...
在 . 处创建未压缩的目录布局 <output-dir>/<output>/。
包含 标准集成文件。
邮政编码
vcpkg export --zip [options] <package>...
在 .. 创建 zip 压缩目录布局 <output-dir>/<output>.zip。
包含 标准集成文件。
7Zip
vcpkg export --7zip [options] <package>...
在 . 处创建 7zip 目录布局 <output-dir>/<output>.7z。
包含 标准集成文件。
NuGet
vcpkg export --nuget [options] <package>...
在 <output-dir>/<nuget-id>.<nuget-version>.nupkg. 处创建 NuGet 包
包含 标准集成文件 以及其他 MSBuild 集成,以支持通过 NuGet 包管理器包含在 MSBuild C++ 项目(.vcxproj)中。 请注意,不能将生成的 export 多个 NuGet 包混合在一起 -- 仅使用其中一个包。 若要添加其他库,必须使用完整的依赖项集创建新的导出。
设置特定选项的格式:
IFW
IFW 导出已删除。
Chocolatey
巧克力出口已被删除。
预 置
Prefab 导出已删除。
选项
所有 vcpkg 命令都支持一组 常见选项。
<package>
这是 SDK 中将包含的顶级生成包的列表。 还将包含这些包的任何依赖项,以确保生成的 SDK 是自包含的。
包语法
<port name>:<triplet>
不带三元的包引用由 默认目标三元组自动限定。
注意: <port name>:<triplet> 在清单模式下使用 vcpkg export 时不允许参数。
--x-all-installed
注释
本部分介绍 vcpkg 的实验性功能,该功能随时可能会更改或删除。
导出所有已安装的包。 在清单模式下使用 vcpkg export 时,隐含此选项。
--dereference-symlinks
将符号链接复制为导出结果中的常规文件和目录。
--dry-run
不要执行导出,只打印导出计划。
--nuget-description=
指定 NuGet .nupkg 文件的输出说明。
默认为“Vcpkg NuGet 导出”。
--nuget-id=
指定 NuGet .nupkg 文件的输出 ID。
此选项替代 --output 了特定于 NuGet 导出程序的选项。 请参阅 --output 默认值。
--nuget-version=
指定 NuGet .nupkg 文件的输出版本。
默认为 1.0.0。
--output=
指定输出基名称。
每个 SDK 类型使用此基名称来确定其特定的输出文件。 有关详细信息,请参阅上述特定于 SDK 的文档。
默认为 vcpkg-export-<date>-<time>。 脚本使用 export 应始终传递此标志,以确保确定性输出。
--output-dir=
指定输出目录。
所有顶级 SDK 文件都将生成到此目录中。 此选项在清单模式下是必需的。 在经典模式下,这是可选的,默认为 vcpkg 根目录。