工程实践:Windows包管理工具——VCPKG

  • 前言
  • Windows C++开发使用第三方库
    • 使用第三方库存在的问题
  • vcpkg的优点
  • 如何使用VCPKG
  • 总结

前言

作为推荐大家使用vcpkg来进行Windows开发,或者Windows、linux和mac跨平台开发的管理工具,熟练之后,可以大大提高效率!!!

作为windows开发,推荐必会!

Windows C++开发使用第三方库

一般开发大型的Windows程序,都少不了使用开源的第三方库,例如我们要实现一个网络通讯的工程,自己实现一套的话,耗时耗力,还大概率不会超越比较好的开源项目。
所以在开发过程中,使用一些第三方库,例如网络连接的高性能库libcurl、用于压缩解压的zlib等等,使用这些库开发极大的方便了程序员,使得我们不必重复造轮子。

使用第三方库存在的问题

由于这些开源库绝大部分都来源于Linux系统,导致其工程文件、编译系统都使用gun系列工具,使得将其移植到Windows的VC开发环境下一直是难点。尽管最近几年很多开源库都支持了跨平台的cmake,但是编译过程仍然复杂和多样化。

像我平常使用一个第三方库的时候:

第一步:先去GitHub上拉去源文件;
第二步:在本地编译,如果是Windows的项目还好,是linux上的编译起来就有很大的问题。
第三步:在项目中包含库目录和头文件目录。

是比较麻烦,并且可能存在卡点的。

这个时候VCPKG横空出世,就可以解决我们的问题。

vcpkg的优点

  • 自动下载开源库源代码

  • 源码包的缓存管理和版本管理,可以升级版本

  • 轻松编译

  • 依赖关系检查(比如编译libcurl,会自动下载zlib、openssl进行编译)

  • 无缝集成Visual Studio,不需要设置库文件、头文件的所在目录,自动集成。 Visual

  • Studio全平台支持,不仅支持Debug/Release、x86/x64编译,还支持UWP、ARM平台的编译。

如何使用VCPKG

这个地方,我就不班门弄斧了,这里我按照这个帖子很快就搭建了一套vcpkg+visual studio的框架:
Visual Studio开源库集成器Vcpkg全教程–利用Vcpkg轻松集成开源第三方库

总结

其实在使用中,还遇到一个问题,暂时没有解决,就是利用cmake管理的vcpkg,暂时不知道怎么在vs里直接用。

工程实践:Windows包管理工具——VCPKG相关推荐

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

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

  2. 本地k8s环境搭建工具kind、microk8s安装;windows 包管理工具Chocolatey;lens k8s可视化工具

    类似工具还有minik8s Chocolatey windows安装 Chocolatey类似mac的homebrew工具 cmd 终端管理运行 @powershell -NoProfile -Exe ...

  3. windows包管理工具chocolatey安装

    https://chocolatey.org/install#individual 由于在windows上安装minikube,为了方便起见需要安装chocolatey 管理员权限打开cmd或者pow ...

  4. Windows 也有包管理工具?

    对于开发者来说,一款好用的软件包管理工具可以大大提高安装.部署.管理软件的效率.在 Win 环境下,我们手动安装一款软件的流程是: 寻找软件官方发布地址,或通过某软件管家 下载我们设定版本的软件 运行 ...

  5. CHOCOLATEY : windows包管理软件改变软件的默认安装位置

    再次更新,买了新电脑装新软件很麻烦,又用了这个... 具体方法是新增一个环境变量即可,老方法应该是不能再用吧,这么久了.... ChocolateyInstall 文档里写的很清楚了: The pac ...

  6. Windows下的包管理工具scoop

    Windows下的包管理工具scoop 包管理工具? 顾名思义就是程序软件包的安装工具,可以管理操作系统上的软件,我们熟知的Ubuntu上的apt-get(在Ubuntu16以上可以直接用apt了), ...

  7. 【包管理工具】Windows下的软件包管理工具Chocolatey介绍、安装软件出现错误的解决方法

    文章目录 1. Chocolatey是什么? 2. 为什么要使用Chocolatey? 3. 如何下载Chocolatey? 4. 如何使用Chocolatey? 5. 示例一:使用Chocolate ...

  8. windows server 2012 使用包管理工具choco安装程序

    下载.安装 管理员打开powershell,输入下面命令 Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePo ...

  9. Python包管理工具小结

    此文已由作者张耕源授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 作为一名接触Python有一段时间的初学者,越来越体会到Python的方便之处,它使人能更 多的关注业务本身 ...

最新文章

  1. mybatis返回某一字段_8.mybatis的基本工作流程(2.0)※
  2. 微博json文件_python 爬取微博评论 !
  3. 为何那么多移动互联网APP慢慢失败
  4. 什么是软件测试中的黑天鹅
  5. 天云服务器做系统,自己做云服务器系统
  6. tracert查网络问题
  7. 这个方法可以实现自动抠图,快来get
  8. 运用for循环计算100以内奇数的和
  9. 计算机专业发SCI还是会议,CCF会议会被SCI收录吗
  10. 大数据时代电视剧市场的价值观转型
  11. Android手势密码
  12. 我是如何用一行代码表白学妹~❤520情人节送女朋友的3D樱花雨相册礼物❤~(程序员表白专属)...
  13. javaScript有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量。
  14. 刷题-整数和罗马数字转换
  15. 拼多多被曝确定五一放假三天,网友:“这也砍一刀?”
  16. Linux协议栈(1)——协议介绍
  17. 广度优先爬虫python_python广度优先
  18. Linux根据关键字批量杀进程
  19. 客观赋权法的python实现
  20. [noip模拟赛2017.7.4]

热门文章

  1. html-frame框架
  2. 常见字体颜色值代码表
  3. docker安装+配置镜像+命令操作+数据卷+网络管理+DockerFile+镜像服务+项目部署+[高级使用]
  4. 均衡发展计算机室一机一册,义务教育均衡发展实验室标准.doc
  5. go编程之常见工具函数
  6. 堆、栈、方法区、直接内存、堆和栈区别
  7. 4976: 宝石镶嵌
  8. ajax的同步,设置JQuery的Ajax方法同步
  9. 遇到的一个git for windows 疯狂占用性能问题
  10. 关于使用position:fixed之后附加margin/padding的一些影响细节