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

article/2025/10/5 2:01:29

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

 


http://chatgpt.dhexx.cn/article/QItOS3TQ.shtml

相关文章

在Visual Studio中激活vcpkg环境

在Visual Studio 2022 17.4中,vcpkg环境现在会自动激活。 一个vcpkg环境是由一个manifest文件描述的,该文件捕获了构建应用程序所必需的工件(了解更多关于vcpkg工件的信息)。 当前vcpkg工件的体验主要是针对嵌入式开发人员&…

Visual Studio工具 vcpkg简介

vcpkg是命令行包管理工具,在使用第三方库的c或c开发中可以简化相关的配置操作。vcpkg安装的包支持Visual Studio 2015 update 3及以上版本,包括vs2017工具集,目前在windows平台已有超过900多个包,linux平台超过350个包。在默认情况…

windows 下包管理工具vcpkg安装

主要参考博文:vcpkg安装及使用_我叫电池的博客-CSDN博客_vcpkg安装 由于需要在离线环境下面搭建开发环境,所有的包只能离线安装了,包括这个管理工具vcpkg的安装,也必须是离线安装。 一. 下载安装vcpkg管理工具 下载目录&#x…

Vcpkg介绍及使用

Vcpkg用于在Windows、Linux、Mac上管理C和C库,极大简化了第三方库的安装,它由微软开源,源码地址:https://github.com/Microsoft/vcpkg,最新发布版本为2023.04.15 Release,它的license为MIT。 在windows上安…

Vcpkg C/C++库管理工具安装和使用教程(链接VS2019)

1、概述: Vcpkg是可用于Windows,linux和MacOS上跨平台的 C/C 库管理工具,是一款开源工具。在此对vcpkg的安装做一个简要的说明,有关具体命令的使用,在安装成功后使用 vcpkg help 或者 vcpkg help[comment] 可以获取特…

vcpkg安装及使用

vcpkg安装及使用 参考链接 1. 安装 内容复制自官方文档 首先,请下载vcpkg并执行 bootstrap.bat 脚本。 它可以安装在任何地方,但是通常我们建议您使用 vcpkg 作为 CMake 项目的子模块,并将其全局安装到 Visual Studio 项目中。我们建议您使…

vcpkg安装指定版本的库

由于fmt版本过高&#xff0c;部分依赖其的库使用时会报错&#xff08;错误 C2338 Cannot format an argument. To make type T formattable provide a formatter<T> specialization&#xff09;。 vcpkg install fmt:x64-windows 默认装的是fmt9.1.0&#xff0c;但是…

vcpkg基本使用

1. vcpkg安装 将下列powershell代码存成ps1文件&#xff0c;在目录下shift右键->打开power shell窗口&#xff0c;运行脚本后vcpkg即安装完成。 # 1. 创建目录、下载vcpkg&#xff1a; mkdir -f D:/APPs cd D:/APPs # github # git clone https://github.com/microsoft/vc…

Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库

利用Vcpkg轻松集成开源第三方库 1. 为什么要用Vcpkg 1.1. 传统使用开源库的方法 1.1.1. 编译工具1.1.2. 编译类型1.1.3. 工程目录设定 1.2. Vcpkg的优点 2. 获取Vcpkg 2.1. 下载Vcpkg2.2. 编译Vcpkg 3. 使用Vcpkg 3.1. 查看Vcpkg支持的开源库列表3.2. 安装一个开源库3.3. 指定编…

VCPKG安装和使用教程

文章目录 1. 安装2. 使用命令选项 3. 集成vcpkgWindows 上的 Visual Studio 集成Linux 或 macOS 上的 Visual Studio Code 集成删除 vcpkg 集成 使用举例4. 详细介绍4.1 新增库4.2 删除库4.3 查看已经安装的列表4.4 更新已经安装的开源库 1. 安装 去GitHub上下载源码&#xff…

vcpkg快速入门手册

文章目录 1. 简介2. 安装与使用2.1 获取vcpkg2.2 编译vcpkg2.3 vcpkg的文件夹层次结构2.4 设置vcpkg的环境变量2.5 vcpkg的常用命令2.6 安装包与Visual Studio集成 3. 常见的C库的CMake配置方式3.1 Boost3.2 cereal3.3 Ceres Solver3.4 CGAL3.5 FLANN3.6 GDAL3.7 GLEW3.8 GMP3.…

vcpkg安装和使用--学习入门

前言 vcpkg是一个C的包管理器。 包管理器是专门管理一些代码库的。比如一些大佬们开源的一些NB的框架&#xff0c;我们可以用vcpkg将他们放到自己的项目中。然后就可以直接用了。 我用的win10vs2019 【1】安装 &#xff08;1&#xff09;先git clone下载下来vcpkg文件夹。 …

Vcpkg 的安装与使用

Vcpkg 的安装与使用 欢迎大家来我的博客逛逛&#x1f44f;&#xff1a;hauhau.cn 需求 先确保你已经安装了: Windows7 及以上的版本GitVisual Studio 2015 Update 3 及以上的版本 关于美化 Windows Terminal 及 Powershell&#xff0c;可以查看这篇优秀文章: Windows-Termi…

C++第三方库管理工具vcpkg使用教程

目录 一、vcpkg介绍二、vcpkg安装1、安装vs英语语言包2、更新PowerShell版本3、配置终端4、clone vcpkg 三、vcpkg具体使用1、演示安装jsoncpp库2、指定位数安装3、查找支持的系统架构4、查看已经安装了哪些库5、如何卸载vcpkg 四、如何集成到visual studio1、集成到Visual Stu…

NS版暗黑破坏神3金手指开发教程(12)

上一节&#xff0c;我们了解到了宝石升级动画延时机制的修改&#xff0c;这一节&#xff0c;我们将全方位地介绍游戏中多个常用功能的延时机制修改&#xff0c;优化玩家的游戏体验&#xff0c;相信经过本节&#xff0c;读者的程序分析能力会有进一步提高 1. 我们首先从鉴定传奇…

NS版暗黑破坏神3金手指开发教程(2)

上一节&#xff0c;介绍了开发金手指所需的工具&#xff0c;这一节&#xff0c;正式开始简单的金手指修改 1. 首先&#xff0c;分别要准备好2.6.6的main.elf和原始版本待调试信息的DiabloIIINX64ra.elf&#xff0c;因为我们要修改的是2.6.6版本的elf&#xff0c;和最初带调试信…

NS版暗黑破坏神3金手指开发教程(7)

上一节&#xff0c;我们讲解了通过代码Hack的方式修改人物的魔法物品获取率和金币获取量等属性&#xff0c;这一节&#xff0c;我们将一鼓作气&#xff0c;拿下移速攻速等更复杂的属性修改 1. 我们在原始版本里搜索移速英文movespeed得到一个结果&#xff0c;双击打开伪代码 2…

Unity 基础常用的脚本(一)

1.获取相机射线 var ray Camera.main.ScreenPointToRay(Input.mousePosition); //GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position ray.GetPoint(10.0f); transform.LookAt(ray.GetPoint(10.0f)); 2.AddForce和velocity有什么区别&#xff1f; AddForc…

NS版暗黑破坏神3金手指开发教程(10)

上一节&#xff0c;我们讲解了一击必杀&#xff0c;技能冷却无CD等人物战斗时用到的金手指制作&#xff0c;这一节&#xff0c;将会讲解人物升级相关的功能以及宝石和打孔器等材料数量的锁定功能制作 1. 在游戏中特别是在游戏后期&#xff0c;我们会发现人物随着等级的提高&am…

Unity脚本复习

1.在Project面板中显示和创建的每一个脚本其实都是一个类&#xff0c;当我们把脚本挂载到Hierarchy层级中的游戏物体时&#xff0c;其实我们就实现了将脚本类实例化为一个脚本组件&#xff08;对象&#xff09;的过程 2.在游戏运行时&#xff0c;场景加载&#xff0c;游戏对象…