官网:https://docs.microsoft.com/zh-cn/cpp/build/vcpkg?view=msvc-160&viewFallbackFrom=vs-2019

vcpkg

vcpkg 是用于 C++ 的一种命令行包管理器。 它极大地简化了 Windows、Linux 和 macOS 上第三方库的购置与安装。 如果项目要使用第三方库,建议通过 vcpkg 来安装它们。

对于 Windows 目录中的库,vcpkg 会下载源,使用可以找到的最新版 Visual Studio 编译这些源代码。对于使用特定编译器版本的标准化团队而言,可让一位成员使用 vcpkg 下载源并编译一组二进制文件。 他们随后可以使用导出命令将二进制文件和标头进行压缩打包,从而与其他团队成员共享。

安装

从 GitHub 克隆 vcpkg 存储库:https://github.com/Microsoft/vcpkg。 可凭喜好下载到任意文件夹位置。 此位置的根是 vcpkg。 下载完成后,在命令行界面切换到该目录。

在 vcpkg 根目录中,运行 vcpkg 引导程序:

  • bootstrap-vcpkg.bat (Windows)                   #生成vcpk.exe
  • ./bootstrap-vcpkg.sh(Linux、macOS)

在 Linux 或 macOS 上,你可能需要在以下示例中使用 ./ 作为 vcpkg 命令的前缀。 请记得从 vcpgg 根目录运行这些命令。

命令

搜索可用库列表                      vcpkg search,

筛选,例如 vcpkg search ta

在本地计算机上安装库           vcpkg install

vcpkg install boost

列出已安装的库

vcpkg list

与 Visual Studio (Windows) 集成

https://docs.microsoft.com/zh-cn/cpp/build/vcpkg?view=msvc-160&viewFallbackFrom=vs-2019

更多:https://docs.microsoft.com/zh-cn/cpp/build/vcpkg?view=msvc-160&viewFallbackFrom=vs-2019

实例

实例背景

最近用c++语言开发一个windows程序,发现一个神器vcpkg。这是微软开源到一个工具,通过这 个工具可以非常方便的下载到很多常用的开源库。并且把这些开源库非常简单的集成到我们自己程序中。

  1. 进入vcpkg项目,运行bootstrap-vcpkg.bat
  2. 运行如下命令,把vcpkg整合到VS开发环境里
vcpkg integrate install

安装完毕

使用

如果我们程序开发要使用thrift库,只需要运行如下

vcpkg install thrift

默认是下载编译x86版本,如果要使用x64版本,则输入命令

vcpkg install thrift:x64-windows

如果要使用静态链接版本[1],则输入命令

vcpkg install thrift:x86-windows-static
vcpkg install thrift:x64-windows-static

这样在我们的代码中,就可以直接使用thrift这个库了。

参考文档

  1. [Vcpkg updates: Static linking is now available](https://blogs.msdn.microsoft.com/vcblog/2016/11 /01/vcpkg-updates-static-linking-is-now-available/)

链接:https://www.jianshu.com/p/d025f931b2e5

vcpkg使用过程中遇到的错误总结

原文:https://blog.csdn.net/qq_37996632/article/details/106532661

Downloading https://raw.githubusercontent.com/boostorg/boost/boost-1.73.0/LICENSE_1_0.txt... Failed. Status: 6;"Couldn't resolve host name"

解决方法:DNS被污染了,需要在hosts文件中加上github相关的真实ip地址

 

140.82.114.3 github.com

199.232.69.194 github.global.ssl.fastly.net

199.232.68.133 raw.githubusercontent.com

windows如何修改host:https://www.cnblogs.com/springlight/p/7102044.html

Failed. Status: 56;"Failure when receiving data from the peer" 

解决方法:由于vcpkg下载的库或依赖基本上都是github上的,而github在国内访问的太慢了。可以用码云gitee把github上的项目先fork一下再导入,通过码云下载好,再放到vcpkg的目录的downloads文件夹中。

首先复制这个网址,复制到浏览器中,如果浏览器下载较快(挂了代理)那么就不需要用到gitee。如果浏览器也下不动就fork一下,再通过码云导入进去下载好。

要注意的是,大多数时候这个下载下来的文件和通过vcpkg下载下来的名称是不一样的,比如下图中的OSGeo-PROJ-6.3.1.tar.gz文件,实际上从github上下载下来时叫PROJ-6.3.1.tar.gz,需要添加一个前缀才能被vcpkg识别,还有的需要在版本号前面加上v,具体的命名视情况而定,多试几次就出来了。后面再vcpkg install的时候就可以识别出下载进去的缓存文件,vcpkg也就不再去连github了,直接用本地的缓存文件。

Could not locate a complete toolset. Please install the English language pack 

解决方法:英语语言包缺失,在Visual Studio Installer中添加英语语言包

遇到下载失败

手动下载,然后放到vcpkg的vcpkg-master\downloads下,重新执行安装命令

【vcpkg】vcpkg:用于 Windows、Linux 和 macOS 的 C++ 包管理器相关推荐

  1. linux 解pac包打包工具,【译】5个对Linux新手来说最好的包管理器

    inux中的包管理器可以说是非常重要,了解如何使用多种多样的包管理器可以大幅度地节省管理员的时间,因为从软件源下载/安装软件,升级,解决依赖问题,卸载软件......这些技能对于Linux系统管理员来 ...

  2. linux pacman安装目录,Arch包管理器pacman和yaourt简明用法

    1.升级系统 pacman -Syu 2.升级系统,附带升级从aur安装的软件包 yaourt -Syu –aur 注:这条命令的确切意思是升级系统,从AUR升级本地软件数据库并安装更新. 3.安装包 ...

  3. 5 个给 Linux 新手的最佳包管理器

    一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux 中,包管理器非常重要,知道如何使用多种包管理 ...

  4. linux桌面管理器未激活,聊聊linux桌面环境和包管理器

    别人说我喜欢玩linux装逼,其实只是为了好玩,跑IDE和安卓模拟器流畅,仅此而已,这几天又玩了些东西,测试了大多数的linux发行版,了解了不少东西,对于种类多达290种linu发行版有了大概的了解 ...

  5. linux高级包管理工具,5 个给 Linux 新手的最佳包管理器

    原标题:5 个给 Linux 新手的最佳包管理器 一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Lin ...

  6. linux更换包管理工具,技术|5 个给 Linux 新手的最佳包管理器

    一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux 中,包管理器非常重要,知道如何使用多种包管理 ...

  7. 常见的linux包管理软件,5款最适合新手的包管理器

    导读 在 Linux 中,包管理器非常重要,知道如何使用多种包管理器可以让你像一个高手一样活得很舒适,从在仓库下载软件.安装软件,到更新软件.处理依赖和删除软件是非常重要的,这也是Linux 系统管理 ...

  8. 基于Ventoy制作单个U盘引导Windows+Linux+黑苹果macOS

    一款国内高手开发的一个名为Ventoy的开源多系统启动U盘制作工具,官方链接:https://www.ventoy.net/cn/index.html Ventoy 特点 不影响U盘日常普通使用 直接 ...

  9. linux c语言显示器api,API级别的Unicode GUI用于Windows / Linux / Mac的C语言本机应用程序...

    API级Unicode GUI用于Windows / Linux / Mac OS X的C中的本机应用程序 . 我正在寻找一个简单的 Unicode , GUI , Native 应用程序,它可以在不 ...

最新文章

  1. CRM成功实施如何化繁为简
  2. pyqt5 qscrollarea到达_在PYQT5中QscrollArea(滚动条)的使用方法
  3. Dxperience 7.3.4 简体中文本地化
  4. QT每日一练day21:鼠标事件
  5. linux命令音乐视频合并,Linux下基于命令行的音乐播放器 (1)
  6. 一张图看懂SOA与微服务
  7. 【MIMO通信】基于matlab空时分组编码MIMO_OFDM通信系统仿真【含Matlab源码 663期】
  8. 精选了20个Python实战项目(附源码),拿走就用!
  9. pubmed显示服务器不稳定,你的pubmed又不能显示影响因子了,因为 ……
  10. Python-nmap 使用文档
  11. SQL Server建库建表命令
  12. 大陆人怎么去香港银行开户?
  13. 软件行业装机卖软件模式没落 转型SaaS服务趋势明显
  14. C语言教程(七):函数
  15. 【经典】synergy共享鼠标键盘/一套鼠标键盘操作多台电脑
  16. Node.js(二)
  17. 项目管理软件中有哪些技术风险?
  18. ESTIMATE包计算肿瘤纯度
  19. Dev-C++的下载和安装步骤 超级详细教程来喽!
  20. 蓝海创意云丨刺杀小说家:中国第一部大规模用虚拟拍摄的真人电影

热门文章

  1. mysql错误码为1045_mysql错误代码1045的原因及解决方案
  2. SUMPRODUCT函数详解
  3. Heritrix 拓展Heritrix
  4. ubuntu16.04安装破解matlab2016详细教程
  5. C# SuperSocket 手把手教你入门 傻瓜教程---3(Telnet服务器和客户端请求处理)
  6. 连接被远程服务器中断,Windows 2008远程桌面3389连接上后会被立即断开,并提示“远程桌面会话已结束”解决方案...
  7. JAVA删除文件或者文件夹工具类
  8. java 设计模式.pdf 免费下载
  9. Win7下实现 lpk.dll劫持游戏注入
  10. Matplotlib.pyplot 常用方法(一)