蝎子

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

vcpkg三月活动

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

目前我们总共有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”)来汇总,具体数量请参见下表:

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生态系统中开发者这一侧不可或缺的角色。虽然我不怎么用,但还是祝:越办越好吧!

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

  1. 【Jekyll搭建GITHUB个人博客】安装Ruby 环境、包管理器 RubyGems、Jekyll与错误解决...

    转载请注明出处http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 今天在博客专家群看到CSDN韩俊强发表了一篇用Jekyll搭建个人博客的文章感觉很好. ...

  2. apt cyg 安装php,Cygwin的包管理器:apt

    本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供markdown格式源码,欢迎使 ...

  3. VSCode中npm包管理器安装到卸载

    学习视频: https://www.bilibili.com/video/BV1BU4y147pS?p=21&spm_id_from=pageDriver npm包管理器安装到卸载 npm包管 ...

  4. 未能加载包studio package_Xrepo:一个现代化的跨平台 C/C++ 包管理器

    xrepo 是一个基于 Xmake 的跨平台 C/C++ 包管理器. 项目源码 官方文档 它基于 xmake 提供的运行时,但却是一个完整独立的包管理程序,相比 vcpkg/homebrew 此类包管 ...

  5. Linux 中的包管理器是什么?它是如何工作的?

    文章目录 1.Linux 中的包管理器是什么? 2.什么是包? 3.包管理器如何工作? 4.不同类型的包管理器 1.Linux 中的包管理器是什么? Linux 发行版之间的主要区别之一是包管理系统( ...

  6. vcpkg安装_[工具]包管理工具Vcpkg 的使用

    vcpkg是Microsoft的跨平台开源软件包管理器,极大地简化了 Windows.Linux 和 macOS 上第三方库的购置与安装.如果项目要使用第三方库,建议通过 vcpkg 来安装它们.vc ...

  7. 群晖套件来源_群晖安装IPKG包管理器及第三方社区安装包步骤

    运行环境为群晖DS1517+,系统版本为DSM6.2.3.群晖虽然是基于Linux开发的,但与Red Hat或者Ubuntu这样的公开发行版不同,群晖除了官方的图形化包管理器外,并没有提供类似yum或 ...

  8. 包管理器作用及特点:conda pip dnf vcpkg

    目录 包管理器功能 conda pip rpm dnf yum vcpkg 总结 包管理器功能 包相当于软件,可实现某项专门的功能.包管理工具相当于软件管家,帮你实现"从哪里下载(源)&qu ...

  9. node.js 腾讯镜像站_使用腾讯云提供的针对Nuget包管理器的缓存加速服务

    继阿里巴巴开源镜像站(https://opsx.alibaba.com/).华为云镜像站点(https://mirrors.huaweicloud.com/ )之后,腾讯也已于近日上线了类似的服务,官 ...

最新文章

  1. Pytorch中的数据加载
  2. RHEL6新特性之联网和服务
  3. android bundle传递list对象集合,如何从android中的firebase中检索List对象
  4. 学用 TStringGrid [7] - ColWidths[0]、RowHeights[0]、GridLineWidth
  5. java中main方法前的public static void及其后面的(String[] args)【笔记自用】
  6. 使用proc文件系统
  7. liferay 如何在页面实现添加多个portlet
  8. webpack+vue实现项目
  9. STL学习系列一:STL(标准模板库)理论基础
  10. 缺芯下的新造车“月考”成绩单来了!
  11. Ubuntu 安装deb格式的安装包(收集)
  12. redis watchdog_干货:Redis分布式锁的原理以及如何续期
  13. WPF-StackPanel面板
  14. shiro设置session超时时间
  15. ECharts绘制图表
  16. 20162327WJH Android开发程序设计实验报告
  17. 计算机基础知识之工作总结,计算机教师工作总结(精选3篇)
  18. ENVI 5.3 计算NDVI的几种方法及结果的差异分析
  19. python与大数据分析实验报告_Python与大数据分析.pptx
  20. C语言将一个数插入到已排好序的数组中

热门文章

  1. python Django基本介绍
  2. 星痕 轻松实现大屏数据可视化_数据美的历程有多难?大屏可视化轻松帮你实现...
  3. plupload使用例子
  4. u盘显示项目不在计算机zhng,能装在u盘上的操作系统有哪些?
  5. 在linux下赋予000权限,【linux】对于文件权限的理解
  6. gitlab将分支代码合并到master上
  7. 计算机翻译字串符,字符的计算机处理和显示 外文翻译.doc
  8. js求渐升数的第100位
  9. CSS未知宽高元素水平垂直居中
  10. [译] 帮助你成为一名成功的 Web 开发工程师的 21 步