vcpkg安装_微软牌包管理器vcpkg更新及路线图计划

蝎子

vcpkg是一套跨平台,开源的C/C++库管理器,今天的这篇文章是有关vcpkg主题的2020年4月博文更新。在这篇文章中,我们将分享有关vcpkg 2020.04发布版本的一些信息以及vcpkg的路线图(roadmap),我们会在这里持续地发布有关vcpkg的最新消息。

vcpkg三月活动

首先我们想感谢所有vcpkg项目的贡献者们。在过去的三月份里,下面的所有人贡献了PR并被合并到项目的主分支中,这些贡献者中有微软的vcpkg核心开发团队成员,也有我们的合作伙伴Beyondsoft的团队成员。

64925612f35e857441b7e81be499f9c0.png

目前我们总共有826名贡献者,非常感谢你们投入宝贵的时间来开发并完善一个更好的库管理工具。同时,我们非常期待着你也能加入到贡献者的队伍中来。

2020.04 发布更新

在四月份,我们发布了vcpkg 2020.04更新。这次的更新包含了一些文档内容的更新,一些产品上的优化改进,新增了5个新的库(我们称之为”ports”),以及对现有的69个ports的更新。

所有重大更新列表如下:

> vcpkg_from_git: 添加git over ssh功能。

> 安卓支持:导出到安卓Archive。

> Make configure meson sane and work for all targets。

> 添加新的策略:SKIP_ARCHITECTURE_CHECK。

> 首次添加iOS支持。

> 添加x-set-installed命令。

> 首次添加JSON支持。

下面列出的是5个新添加的代码库:

1. skyr-url (v1.5.1)

2. boringssl (v2020-04-07)

3. quadtree (v2020-04-13)

4. avisynthplus (v3.5.0)

5. c4core (v2020-04-12)

总的来说,我们目前在vcpkg主仓库目录中一共支持1322个代码库。如果根据编译配置(我们称之为”triplets”)来汇总,具体数量请参见下表:

acf64a19ceb12ab2264a3d0fc9cb5cd7.png

vcpkg的路线图

接下来是我们对于vcpkg的路线图计划。我们将继续支持新的代码库并增加库在Linux和macOS上的数量,同时,我们会基于你的使用反馈和建议来添加新的产品特性。下面是我们计划添加的一些特性:

1. vcpkg将通过缓存来减少库在一台新机器上的安装时间。

目前,vcpkg会下载源代码到你的机器上并进行本机编译。这个过程可以生成一个匹配你所指定的编译配置的二进制文件,并和你的项目保持兼容性。但是有一些库需要以相同的方式编译到多台机器上。还有一些例子包含一套运行在多台编译服务器上的持续集成的设定,或者有多个开发者在他们自己的开发机上为同一个项目上工作。接下来,vcpkg将可以使你仅做一次本机编译并缓存生成的二进制输出到一个文件或者一个二进制文件宿主服务(例如,Azure Artifact Storage)。下一次在另一台机器上执行”vcpkg install”命名的时候,vcpkg将能够从缓存中下载预编译好的二进制文件,而不再需要执行另一次的本机编译。这个功能特性可以显著的节省时间,尤其是当你的项目是跨越多个编译服务器的大型项目的时候。

2. vcpkg安装的时候支持指定库的版本。

在默认情况下,vcpkg提供了一个大概有1300个库的目录,这些库在指定的快照环境下都经过了与其他库的兼容性测试.这意味着,你可以随意选择安装一个库而不用担心其版本冲突的问题,但这也限制了它的灵活性,因为你可能希望使用某个库的特定版本。我们相信,一个好的库管理器应该对高级用户具备足够的灵活性,我们将允许用户在库安装阶段指定一个特定的版本。如果你明白库的依赖性图表并愿意承担兼容性测试的责任,则你可以选择安装库的旧一点的版本,只要你愿意的话。你依旧可以在我们的目录中运行我们提供的测试项目,就算对于不同的库使用到了一些不同的版本,但是因为这其中海量的排列组合的可能性,我们也不能保证有100%的覆盖率。

3. vcpkg将会提供一个清单文件,这个文件可以用来指定所有的依赖,并且可以CheckIn到源码控制系统中。

这个想法非常直接:你可以在一个叫做vcpkg.json的文件中指明库的依赖项,版本以及从何处可以获取到这个依赖。这个文件可以成为你的源码仓库的一部分,并且vcpkg可以在你需要的时候读取这个文件并按需下载所有需要的东西。

4. vcpkg将会更容易的从多个源中安装代码库。

目前,vcpkg主要用来下载一些比较流行的开源代码库。在我们的目录中,已经有1300个库可用了,但是在企业环境中还有许多私有库和一些比较小的库没有在我们的目录中。想法是:提供一种可能性,可以在vcpkg中制定库的源地址,这样就可以下载它。通过这个方法,vcpkg可以管理你项目中的所有依赖,而不仅仅是开源代码库的部分。尽管在一开始开发团队可能需要针对他们的环境做一些设定,但从长远来看,这可以在项目环境搭建和持续集成阶段节省很多时间。

5. vcpkg将会随Visual Studio和Visual Studio Code一起发布。

在Visual Studio中,vcpkg将会包含在C++工作集中,而对于Visual Studio Code,它会被作为C++的一个扩展来发布。这两套开发环境都已经包含了一些对vcpkg的支持,我们将会持续改进开发环境的整合性。目标是,在你使用这些开发环境时,可以更加流畅的下载你需要的代码库。所以,我们需要做的第一步就是将库管理器集成到开发环境中,这样当你需要使用到它的时候,它就已经在那里了。

总结

vcpkg作为库管理器的后起之秀,在大微软开发队伍的努力工作下,假以时日,应该会成为其OneWindows生态系统中开发者这一侧不可或缺的角色。虽然我不怎么用,但还是祝:越办越好吧!

ea6a0eb754b4aabe8c1271390d0a8a96.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS 盒模型与box-sizing

一、盒模型 一个web页面由许多html元素组成,而每一个html元素都可以表示为一个矩形的盒子,CSS盒模型正是描述这些矩形盒子的存在。 MDN的描述: When laying out a document, the browsers rendering engine represents each element as a r…

Java课程设计 购物车系统(个人博客) 201521123052 蓝锦明

1. 团队课程设计博客链接 课程设计团队博客 2. 个人负责模块或任务说明 (1)制作图形菜单引导界面 (2)定义各获取和输出类函数 3. 自己的代码提交记录截图 4. 自己负责模块或任务详细说明 import java.text.NumberFormat; public c…

7-12(图) 社交网络图中结点的“重要性”计算(30 分)

在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处…

linux系统的安装程序,Linux系统安装

为了不影响本机系统,建议在虚拟机上创建并安装Linux系统,本次安装centos7 64位的镜像。详细步骤如下:1、首先在虚拟机主页创建新的虚拟机。... 图1.1 2、选择自定义安装,这样方便我们更好了解虚拟机,然后点击下一步。.…

百米路由器2登陆地址_腾达无线路由器怎么安装,真的不错

腾达无线路由器怎么安装1、WAN口连接宽带进线(即网络公司进来的线或猫出来的线,一般颜色不一样)、LAN口连接局域网内的电脑。2、设置所连接电脑的IP地址。右键点击网上邻居属性3、右键点击本地连接属性4、选择Internet协议TCP/IP属性5、点击选择自动获得IP地址和自动…

JavaFX 2 XYCharts和Java 7功能

我最喜欢的JavaFX 2功能之一是它在javafx.scene.chart包中提供的标准图表。 该软件包提供了几种不同类型的现成图表。 除了其中之一( PieChart )以外,所有其他都是“ 2轴图”( XYChart的特定实现)。 在本文中&#xff…

前端基础-HTML的的标签详解

阅读目录 一、head内常用标签二、 HTML语义化三、 字符实体四、 h系列标签五、 p标签六、 img标签七、 a标签八、 列表标签九、 table标签十、 form标签 一、 head内常用标签 1、meta相关 #1、指定字符集<meta charset"gbk">#2、页面描述<meta name"…

new失败跟踪函数_WinDbg预览时间线:调试器中的时间线可以允许用户记录跟踪

时间旅行调试(TTD)允许用户记录跟踪&#xff0c;这些跟踪是对程序执行的记录。时间线是执行过程中发生的事件的直观表示&#xff0c;这些事件可以是包括断点&#xff0c;内存读/写&#xff0c;函数调用和返回以及异常。使用时间线窗口可以快速查看重要事件&#xff0c;了解相对…

linux 进程的执行时间,Linux 获取进程执行时间

Linux 获取进程执行时间1 前言测试一个程序的执行时间, 时间包括用户 CPU 时间系统 CPU 时间时钟时间之前获取之前时间都是在程序的 main 函数用 time 函数实现, 这个只能粗略的计算程序的执行时间, 不能准确的获取其他时间在看 APUE 时, 书中有关程序时间测试程序, 非常正规, …

Java环境变量的设置

1.计算机->属性->高级系统设置->环境变量 2.设置JAVA_HOME和path&#xff0c;1.5之后的JDK可以不设置classpath 3.JAVA_HOME的路径是JDK的安装路径 4.在系统变量里面找到path&#xff0c;然后点击修改&#xff0c;在最后面添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 5…

华为抢购助手_华为荣耀20系列手机采用的五项新科技,科普简介

5月底荣耀20系列在上海发布&#xff0c;荣耀20系列旗舰手机拥有五项荣耀自主研发的新科技&#xff0c;包括LinkTurbo网络聚合加速、超级NFC、方舟编译器、人性化YOYO智慧生命体&#xff0c;超级蓝牙。下面分别介绍一下这五项新科技。LinkTurbo网络聚合加速先来科普一下LinkTurb…

Flex弹性布局

1 Flex: 弹性布局 (转) 任何一个容器都可以指定为 Flex 布局。 1 .box {2  display: flex;3 } 行内元素也可以使用 Flex 布局。 1 .box{2 display: inline-flex;3 } 注意&#xff0c;设为 Flex 布局以后&#xff0c;子元素的 float、 clear 和 vertical-align 属性将失效…

firewallD卸载Linux,在Ubuntu 18.04/16.04系统上安装和使用Firewalld的方法

本文介绍Firewalld在Ubuntu 18.04或Ubuntu 16.04发行版上的安装方法及基本用法。简介Firewalld是Linux防火墙管理工具&#xff0c;支持IPv4、IPv6、以太网桥和IPSet防火墙设置&#xff0c;它充当Linux内核的netfilter框架的前端&#xff0c;同时Firewalld是RHEL 7系列上的默认防…

PCGen的垃圾收集分析

介绍 我决定结合我的两个软件爱好&#xff0c;并在PCGen上进行一些分析&#xff0c; PCGen是一种流行的基于Java的开放源代码角色生成器&#xff0c;用于角色扮演游戏。 我用Censum &#xff0c;我们&#xff08; jClarity的&#xff09;新的垃圾收集日志分析工具来进行分析。 …

springboot不会运行gc_SpringBoot 和JVM 调优(深度好文,建议收藏)

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]项目调优作为一名工程师&#xff0c;项目调优这事&#xff0c;是必须得熟练掌握的事情。在SpringBoot项目中&#xff0c;调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件 application.p…

3dobject用什么打开_第一次用开塞露是什么感觉?网友:像打开了新世界的大门

第一次用开塞露是什么感觉&#xff1f;网友:像打开了新世界的大门我妈说我小时候便秘去医院&#xff0c;医生给开了支开塞露&#xff0c;然后在医院的公厕里使用的&#xff0c;我妈的描述是:“要不是我手挪走的快点&#xff0c;就直接喷我手了”。。。。。。。。。。。。。。。…

Java 7中对String.substring的更改

众所周知&#xff0c;在您生成相同源字符串的许多子字符串的情况下&#xff0c;Java会优化子字符串操作。 它通过使用(value, offset, count)存储信息的方式来做到这一点。 请参阅以下示例&#xff1a; 在上图中&#xff0c;您会看到字符串“ Hello”和“ World&#xff01;”…

原生js创建模态框

1.效果图如下&#xff1a; 2.代码如下&#xff1a; <!DOCTYPE html><html><head><meta charset"UTF-8"><title>Test</title><style>#pageMask {visibility: hidden; position: absolute;left: 0px; top: 0px;width:…

CSS节选——选择器

CSS&#xff0c;cascading style sheet&#xff0c;层叠样式表&#xff0c;请留意层叠概念。 css3为了区分伪类和伪元素&#xff0c;伪元素采用双冒号写法。 常见伪类——:hover,:link,:active,:target,:not(),:focus。 常见伪元素——::first-letter,::first-line,::before…

vue.js基础知识篇(7):表单校验详解

目录 网盘 第12章:表单校验 1.npm安装vue-validator $ npm install vue-validator 代码示例: var Vuerequire("vue"); var VueValidatorrequire("vue-validator"); Vue.use(VueValidator); 2.直接使用script标签引入vue.js 要下载vue-validator&#xff0c…