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

官网: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下,重新执行安装命令

 

posted on 2022-10-04 01:24  bdy  阅读(119)  评论(0编辑  收藏  举报

导航