近日,VS团队的妹妹塔拉正式公布了C/C++代码管理工具vcpkg的2019.07版本更新。就在上个月,我在一篇文章中介绍了vcpkg 2019.06的更新总结。一个月后的今天,2019.07版发布。感觉速度还是挺快的。让我们赞美一下我的老朋友。

让我们来看看这次带了什么新东西

在本文中,我将主要介绍代码构建缓存、端口和三元组的更新、端口贡献者的改进以及相关帮助文档的更新。

如果你想看到完整的更新列表,请到Github。

使用vcpkg进行构建缓存

在大型项目建设中,由于大量代码库的引入,建设时间会更长。vcpkg更新特别添加了构建缓存功能,具体来说,在Azure Pipelines中,通过重用之前的构建缓存,可以大大减少项目的构建时间。这个特性在构建大型项目的场景中特别有用,因为通过缓存之前的文件,可以避免在每个项目构建中重新编译相同的依赖库,从而加快整个项目的构建进度。

说白了,你编译项目的时间缩短了,你会有更多的时间去开发核心业务功能。当然,如果你在编译时间每次都出去喝杯咖啡,那就尴尬了!

给我一个栗子。如果你在你的C++项目中使用了广泛使用的SQLite数据库,当然你也可以在其他库中使用SQLite。当未启用管道缓存机制时,每次运行构建时都会安装vcpkg和sqlite3库,以便比较调用时间。

启用缓存后,可以避免这些重复的构建和安装操作,从而大大加快构建过程,不是很好玩吗?

此外,微软工程师卢卡创建了一个新的管道任务。开发团队通过使用CachBeta管道任务进行对比测试,发现在“运行vcpkg”的施工阶段,施工时间从2分26秒减少到14秒。效果确实显著。

Azure DevOps扩展:CppBuildTasks

下图是CppBuildTasks项目的管道任务流程图:

在上面的SQLite3示例中,根据上面的流程图,首先安装vcpkg,然后安装sqlite3库。这些安装将缓存在管道中,因此无需在后续的施工过程中进行重建和安装。

请参考Github上一个关于如何在项目中使用CppBuildTasks的简单例子。这里就不赘述了。

让我们来看看一些值得注意的事情:

>。VcpkgGitReg:这是一个特定的提交ID,它指定了您想要安装的vcpkg的版本。

>。任务:缓存测试版@0:这用于在Azure Pipelines中启用管道缓存。

>。key:$/vcpkg _ x64-Linux . txt | " $" | " $":这是一个密钥,它使用包含库和响应文件的源目录、提交ID和生成代理的名称来生成一个生成哈希值。

使用缓存机制后的结果

好吧,我们来看看。在CppBuildTasks脚本的帮助下,我们在Ubuntu服务器上运行了一次vcpkg和sqlite3的构建和安装。我们可以看到施工时间比以前大大减少了。

Ports

在这次更新中,开发团队添加了37个新端口。有些人喜欢它:7 ,basi,librdkafka,mi malloc,mongoose和zookeeper。请到Github获取完整的更新列表。除了这37个新端口之外,此次还更新和修改了现有的160个端口。

Triplets

Vcpkg默认支持多个构建目标环境。在过去的一个月里,开发团队将Linux上的端口数量从823个增加到866个。

以下是所有构建目标环境中端口的摘要:

Port贡献者的改进

开发团队还优化了vcpkg基础设施,包括引入新的vcpkg环境变量和修改vcpkg三元组环境变量的新机制。这些改进还在优化中,请拭目以待。

新的Triplet环境变量:VCPKG_ENV_PASSTHROUGH

到目前为止,只能在Windows上的允许列表中手动添加。这一次,添加了一个VCPKG_ENV_PASSTHROUGH变量来手动覆盖文件中以前的设置。

环境变量覆写

Port的作者可以向Port添加一个新的环境覆盖. cmake文件,该文件可以用来覆盖或重置vcpkg的三元组变量。举个例子:这个特性可以让在vcpkg源码中不允许显示的环境变量在PortFile中再次可用。

文档的更新

当然,每次更新一个特性,文档都是必不可少的。谁叫你是微软的?

上述所有更新点在文档中都有明确说明。如果您有任何问题,可以先在文档中搜索。

总结

总的来说,vcpkg作为一个后起之秀的包管理器,正处于一个极其快速的开发时期,可能会有各种小的缺陷,但我们相信,通过开发团队的努力,它一定会成为C/C++开发人员工具包中的利器。

为什么不试试呢?

1.《vcpkg 新版vcpkg:显著减少你的构建时间》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《vcpkg 新版vcpkg:显著减少你的构建时间》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1666601.html