Vcpkg更新:静态链接

[原文发表地址] 静态链接正式启用

[原文发表时间] 11/6/2016

在一个月之前, 我们宣布了Vcpkg正式启用, 这是一个命令行工具,可以很简单地获取和构建开源代码C++ lib 并且已经在Visual studio 2015 中投入了使用,只是在这个最初发布的版本中仅仅只支持动态链接库,基于我们收到的反馈,我们很高兴来公布Vcpkg 开始支持静态链接

为了生成静态链接库, 使用x86-windows-static 或者x64-windows-static 中的其中一个参数

例如: 为x86 用户来构建静态zlib

 vcpkg install zlib:x86-windows-static

The library will be installed in the following folder:  vcpkg\installed\x86-windows-static

 

使用静态链接库

更新于11/4: 为了阐明/MT 的使用方法,我们专门就如何覆盖这个两个自动识别参数提供了详细的向导说明

我们当下部署了一系列内置参数,它们将会根据静态CRT 构建静态库(Visual Studio中的/MT):x86-windows-static, x64-windows-static等等

在Visual Studio中 ,你可以使用MSBuild的”VcpkgTriplet”和“VcpkgEnabled属性来自动覆盖这些自动识别出来的参数(这将会默认生成DLL)”。对于更大的解决方案,属性页中有更好的方法来管理这些设置。

例如:

     <PropertyGroup Label="Globals">
        ....
        <VcpkgTriplet>x86-windows-static</VcpkgTriplet>
        <VcpkgEnabled>true</VcpkgEnabled>
    </PropertyGroup>

 

在CMake 里面, 你可以使用 `-DVCPKG_TARGET_TRIPLET=x86-windows-static 加上普通的工具参数列表来覆盖自动识别的参数。

cmake .. -DCMAKE_TOOLCHAIN_FILE=.../vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x86-windows-static

 

请注意:所有的在*-windows-static triplets 参数里面的libraries 都是根据静态CRT(/MT 或者/MTd)进行链接的,所以你将需要改变你的CMAKE_CXX_FLAGS (请查看https://stackoverflow.com/questions/14172856/cmake-compile-with-mt-instead-of-md)

团队贡献

我们非常感谢团队中的每一个人,起初从目录列表中的20 个libraries 开始, 在整个团都的不懈努力下,我们增加了60个以上的lib, 就现在已经完成的90多个lib [在这可查找完整列表]而言,我们每天需要增加一个新的lib,就这样的进度而言这是非常惊人的: 你们也一定会觉得相当震惊!当然我们也收到了非常好的反馈和有趣的建议, 其中也有希望我们能够增加更多的libs 的请求。非常感谢大家的每一条反馈,因为这也是我们的工程能够取得成功关键的一步:大家的鞭策努力下成为一个更高效的团队。

如果你需要一个特定的library, 请创建一个用来鉴定你需要的这个library的问题号, 我们将不遗余力的提高版本的精准性, 源文件的路径等等。 如果想看到迄今为止所有的library问题列表,请注意查看“新端口请求的问题列表”。这些问题一旦被创建,团队将会根据您的问题,创建正确地端口文件。或者您已经对构建libraries 非常熟悉了,对于您的端口文件请开一个“Pull Request”,并且如果必要的话请关联上补丁文件。

我们已经更新的文档

我们完善了一个用来创建主题的端口文件,详见Vcpkg中的例2和例3,这可以帮助你更加方便地创建和维护端口文件。

随着静态链接库的支持,这是一个里程碑式的进展,当下我们正在计划下一个阶段的任务, 现在是您分享你的建议和对这个工程的期望最好的时机,请在GitHub上提交您的反馈[ https://github.com/Microsoft/vcpkg ],并且您还可以参加我们的讨论。

期待着在GitHub 能够很快见到您, <有任何问题请随时联系我们vcpkg@microsoft.com>