【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。这是微软开源到一个工具,通过这 个工具可以非常方便的下载到很多常用的开源库。并且把这些开源库非常简单的集成到我们自己程序中。
- 进入vcpkg项目,运行
bootstrap-vcpkg.bat
- 运行如下命令,把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这个库了。
参考文档
- [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下,重新执行安装命令