Vcpkg公司 帮助您获得 在Windows上构建开放源代码库 . 自2016年9月以来,社区在vcpkg目录中添加了200多个库,并一直积极地为代码本身做出贡献。Vcpkg现在支持visualstudio2015和visualstudio2017,可以针对动态或静态库和平台,如x64、x86或UWP。
今天我们高兴地宣布一项新的命令: vcpkg导出 . 正如您在最近的调查中所说的,需要一个命令来导出您使用vcpkg构建的二进制文件。这个新命令的目的是让您与其他希望在项目中使用vcpkg的开发人员共享和重新分发使用vcpkg生成的二进制文件。例如,企业中负责第三方库获取的团队可以使用vcpkg生成企业项目使用的一组公共库二进制文件,然后使用vcpkg export与内部开发人员共享这些二进制文件(包括.h、.lib以及根据这些库构建所需的所有内容)。
新命令的语法为:
vcpkg export <pkg1> <pkg2> ... --[options]
导出格式有几个选项:
- –拉链
- –7拉链
- –努吉
- –原始(未压缩文件夹)
指定要导出的包时,其所有依赖项也包含在导出的存档中。这意味着导出的包可以独立存在—不需要其他依赖项。
下面是一些示例,演示如何使用vcpkgexport。
一。导出到nuget
> vcpkg export cpprestsdk zlib --nugetThe following packages are already built and will be exported:* boost:x86-windows* bzip2:x86-windowscpprestsdk:x86-windows* openssl:x86-windows* websocketpp:x86-windowszlib:x86-windowsAdditional packages (*) need to be exported to complete this operation.Exporting package zlib:x86-windows...Exporting package zlib:x86-windows... doneExporting package openssl:x86-windows...Exporting package openssl:x86-windows... doneExporting package bzip2:x86-windows...Exporting package bzip2:x86-windows... doneExporting package boost:x86-windows...Exporting package boost:x86-windows... doneExporting package websocketpp:x86-windows...Exporting package websocketpp:x86-windows... doneExporting package cpprestsdk:x86-windows...Exporting package cpprestsdk:x86-windows... doneCreating nuget package...Creating nuget package... doneNuGet package exported at: E:/workspace/vcpkg/vcpkg-export-20170502-150917.nupkgWith a project open, go to Tools->NuGet Package Manager->Package Manager Console and paste:Install-Package vcpkg-export-20170502-150917 -Source "E:workspacevcpkg"
二。导出到7zip和zip
可以指定这些选项中的多个以多种格式导出。
> vcpkg export zlib --7zip --zipThe following packages are already built and will be exported:zlib:x86-windowsExporting package zlib:x86-windows...Exporting package zlib:x86-windows... doneCreating zip archive...Creating zip archive... doneZip archive exported at: E:/workspace/vcpkg /vcpkg-export-20170502-161923.zipTo use the exported libraries in CMake projects use:"-DCMAKE_TOOLCHAIN_FILE=[...]/scripts/buildsystems/vcpkg.cmake"Creating 7zip archive...Creating 7zip archive... done7zip archive exported at: E:/workspace/vcpkg/vcpkg-export-20170502-161923.7zTo use the exported libraries in CMake projects use:"-DCMAKE_TOOLCHAIN_FILE=[...]/scripts/buildsystems/vcpkg.cmake"
三、为多种架构导出多个库
可以在同一导出文件中导出多个库以及同一库的多个体系结构。
> vcpkg export gtest zlib gtest:x64-windows zlib:x64-windows --nugetThe following packages are already built and will be exported:gtest:x86-windowsgtest:x64-windowszlib:x86-windowszlib:x64-windowsExporting package zlib:x86-windows...Exporting package zlib:x86-windows... doneExporting package zlib:x64-windows...Exporting package zlib:x64-windows... doneExporting package gtest:x86-windows...Exporting package gtest:x86-windows... doneExporting package gtest:x64-windows...Exporting package gtest:x64-windows... doneCreating nuget package...Creating nuget package... doneNuGet package exported at: E:/workspace/vcpkg/vcpkg-export-20170502-150917.nupkgWith a project open, go to Tools->NuGet Package Manager->Package Manager Console and paste:Install-Package vcpkg-export-20170502-150917 -Source "E:workspacevcpkg"
使用导出的二进制文件
一。Visual Studio项目
要将使用vcpkgexport命令创建的二进制文件使用到visualstudio项目中,需要使用vcpkgexport–nuget选项,然后将.nupkg作为其他所有nuget包添加到项目中。其他导出选项(–zip、–7zip、–raw)在scriptsuildsystemsmsbuild内包含必需的.targets文件,用于更高级方案中的msbuild集成。
二。克马克
从vcpkgexport导出时包含CMake工具链文件。它在脚本系统中。要使用它,需要在调用CMAKE时指定CMAKEu TOOLCHAINu FILE变量:
> cmake .. "-DCMAKE_TOOLCHAIN_FILE=E:/workspace/vcpkg/vcpkg-export-20170502-161923/scripts/buildsystems/vcpkg.cmake"
告诉我们你的想法
一如既往,我们真的希望这个项目成为你的工具。如果您需要其他导出格式,只需在上创建一个问题就可以让我们知道 github 或者对代码本身有贡献!
我们还验证了vcpkg目录中的所有库都可以与VS 2017配合使用,因此如果您在升级时遇到问题,请务必通知我们!我们希望您喜欢使用vcpkg将您的项目迁移到Visual Studio 2017。pre>