Windows安装vcpkg教程(VS2022)

内容摘要:

本文详细介绍如何在Windows系统上使用 Git 克隆 vcpkg 仓库来安装vcpkg工具,并链接Visual Studio 2022。

目录

一、关于vcpkg

二、开发环境

三、安装Git

四、使用 Git 克隆 vcpkg 仓库


一、关于vcpkg

vcpkg 是一个开源的 C++ 包管理工具,旨在简化 C++ 库的管理、安装和集成。它帮助开发者轻松地将第三方 C++ 库集成到自己的项目中,并提供了一种跨平台的方式来管理和分发 C++ 库。vcpkg 支持 Windows、Linux 和 macOS,能够自动处理库的下载、构建和依赖关系,极大地简化了 C++ 开发中的外部库管理问题。

vcpkg与其它管理工具的对比:

  1. vcpkg vs Conan

    • Conan 是另一个流行的 C++ 包管理工具,旨在简化 C++ 项目的依赖管理。Conan 提供更强大的跨平台支持,支持与多种构建系统(如 CMake、Visual Studio、Make 等)集成。
    • vcpkg 更注重与 Visual Studio 和 CMake 的无缝集成,并提供了更为简单的命令行界面和安装方式。
    • 差异:vcpkg 主要用于管理由 Microsoft 和其他开源社区提供的 C++ 库,并且通常支持 Windows 和 Linux/macOS 平台。而 Conan 支持更多的构建系统、版本和配置,可以为多种平台提供更多定制选项。
  2. vcpkg vs 自行管理依赖: 在没有 vcpkg 的情况下,开发者需要手动下载、构建和集成外部库,管理所有的依赖关系。这不仅耗时,而且容易出错。vcpkg 提供了一个简单、高效的方式来自动处理这些任务,减少了人工错误的发生。

vcpkg的优点:

  • 易用性:通过命令行一行命令安装、卸载库,简化了 C++ 项目中库的管理。
  • 跨平台支持:支持 Windows、Linux 和 macOS,让同一个项目可以在多个平台上使用相同的依赖。
  • 自动化依赖管理:自动处理库的构建和依赖关系,不需要手动解决版本和依赖冲突。
  • 与 CMake 完美集成:通过 CMAKE_TOOLCHAIN_FILE 配置,vcpkg 能自动配置 CMake 项目,省去了手动配置路径的麻烦。

二、开发环境

1.操作系统:Win10/Win11

2.开发工具:Visual Studio 2022

3.开发语言:C/C++

4.Git版本:2.47.0.2

三、安装Git

在安装 vcpkg 之前,Git 是一个必要的工具,因为 vcpkg 是通过 Git 从 GitHub 仓库克隆下来的。Git 是一个分布式版本控制系统,允许你从远程仓库(例如 GitHub)下载源代码并管理版本。

1.下载地址: 

Git官方网址: http://git-scm.com(包含不同系统不同平台的安装包和源代码)

适用于Windows的Git下载网址:http://gitforwindows.org (只有 windows 系统的安装包)

2.安装步骤:

下载后双击exe进行安装,如下图所示。

点击next,笔者设置安装位置为D:\METIS\GIT。

根据自己的需要选择组件进行下载,默认如下图所示。

方框内 Git 为安装组件的文件夹名称,可改为其他名字,也可点击 “Browse...” 选择其他文件夹或者给"Don't create a Start Menu folder" 打勾不要文件夹。

后续一直点击next,选择默认设置即可,安装完成后点击finish。

3.配置环境:

安装好后将git.exe的路径添加到系统 path 环境变量当中去,这样就可以在Windows系统Win+R的系统cmd命令行中使用vcpkg。我们主要使用的是 Git CMD ,当添加完Gti环境变量后,你也就可以使用Windos系统自带的cmd命令行工具。

右键此电脑->属性->高级系统设置->环境变量,如下图所示。

在系统变量中双击Path,点击新建,将bin文件夹的地址填入,笔者地址为D:\METIS\GIT\Git\bin,点击确定。

其中D:\METIS\GIT为安装位置,Git为安装组件的文件夹名。

4.检测安装是否成功:

使用快捷键Win+R,输入cmd打开终端,输入以下命令:

git --version

如果 Git 已成功安装并且环境变量已正确配置,你应该看到类似以下的输出: 

 这表示你安装的 Git 版本(例如版本 2.47.1.windows.2)。如果你看到类似这样的版本号输出,说明 Git 已经成功安装并配置好环境变量。

四、使用 Git 克隆 vcpkg 仓库

1.下载地址:

  • vcpkg 官方网站:https://vcpkg.io

这个网站提供了 vcpkg 的详细文档、安装指南、使用教程以及如何为 vcpkg 添加新的库等内容,可以在这个网站上找到关于 vcpkg 的所有资源。

  • vcpkg GitHub 仓库:https://github.com/microsoft/vcpkg

vcpkg 的源代码和贡献指南都托管在 GitHub 上,在 GitHub 上可以找到 vcpkg 的源代码、发布历史以及其他开发者的贡献。(本文安装方法使用该网址)

2.准备工作:

新建空文件夹,建议使用短路径名称(不含空格)(如 C:\src\win32\ 或 C:\dev\iot\),笔者以D:\vcpkg为例。首先下载引导vcpkg,安装位置随意,但是为了之后方便与Visual Studio以及其他C/C++编译器链接,建议使用类似 C:\src 或者 C:\dev ,可以理解为在本地建立一个库的仓库,之后所有的安装都在该目录下,否则会由于路径的缘故会遇到某些端口构建系统的路径问题。

3.使用 Git 克隆 vcpkg 仓库:

打开Git CMD命令行工具,使用 cd 到建立的目标路径(本文以D:\vcpkg为例)

使用 Git 克隆 vcpkg 仓库,输入以下命令:

git clone https://github.com/Microsoft/vcpkg

终端如下图所示。

 这将会把 vcpkg 仓库克隆到当前目录中,并创建一个 vcpkg 文件夹。vcpkg 的所有源代码和工具都会被下载到该文件夹中。

下载完成如下图所示。

再次使用 cd 命令到vcpkg文件路径内(本文以D:\vcpkg\vcpkg为例)

运行构建脚本来编译 vcpkg,输入以下命令:

 .\bootstrap-vcpkg.bat 

终端如下图所示。

 下载完成后会编译并生成 vcpkg.exe 工具。

4.配置环境:

为了方便在任何地方使用 vcpkg 命令,可以将 vcpkg 的路径添加到环境变量中,使其在命令行中全局可用。右键此电脑->属性->高级系统设置->环境变量,在系统变量中双击Path,点击新建,将bin文件夹的地址填入,笔者地址为D:\vcpkg\vcpkg,点击确定。

5.检测安装是否成功:

使用快捷键Win+R,输入cmd打开终端,输入以下命令:

vcpkg --version

如果vcpkg已成功安装并且环境变量已正确配置,你应该看到类似以下的输出: 

vcpkg package management program version 2024-11-12-eb492805e92a2c14a230f5c3deb3e89f6771c321See LICENSE.txt for license information.

这表示 vcpkg 已成功安装并正确运行。输出的内容包括以下信息:

vcpkg版本号:

输出中的 2024-11-12-eb492805e92a2c14a230f5c3deb3e89f6771c321 部分是 vcpkg 的版本信息。版本号包含两个部分:

  • 日期2024-11-12 表示 vcpkg 的版本发布日期。
  • 提交哈希eb492805e92a2c14a230f5c3deb3e89f6771c321 是当前 vcpkg 版本的 Git 提交哈希(唯一标识)。

这意味着安装的 vcpkg 是一个特定日期和版本的构建。

LICENSE.txt 提示:

See LICENSE.txt for license information 表示你可以查看 vcpkg 项目的 LICENSE.txt 文件,了解 vcpkg 的许可协议。

6.链接Visual Studio 2022:

继续在Git CMD的D:\vcpkg\vcpkg地址下输入以下命令:

 .\vcpkg integrate install

运行结果如下,即链接成功。

欢迎交流🌹🌹


参考资料:

Git 详细安装教程(详解 Git 安装过程的每一个步骤)_git安装-CSDN博客

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/19533.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

TypeScript泛型基础知识

1.1 泛型 泛型是可以在保证类型安全的前提下,让函数等与多种类型一起工作,从而实现复用,常用于:函数、接口、class中。 需求:创建一个id函数,传入什么数据就返回该数据本身(也就是说&#xff0c…

多线程的安全问题

什么是线程安全问题? 多个线程,访问同一资源,出现了问题,就是线程安全问题(数据不准确,或者直接报错) 1)错误演示: public class Demo04 {static int tickedNum 100;/…

推荐一套相片复原工具:Focus Magic

Focus Magic是一套相片复原工具,能够帮助你修补及强化那些模糊不清楚的影像。其他那些锐利化工具只能够修补那些只有一点模糊的相片,但有了Focus Magic你就可以把那些根本完全没对准焦距的相片重新对准焦距。程序还可以以插件的形式作为其他图形处理工具…

C++:类的继承

在C中,类的继承是一种面向对象编程(OOP)的重要特性,它允许一个类(子类或派生类)继承另一个类(基类或父类)的属性和方法。通过继承,可以重用现有的代码,减少重…

详细解读Gson 、Jackson 、FastJson 三大json序列化工具

一 gson Google提供的用来java对象和JSON数据之间进行映射的JAVA类库 优缺点 优点&#xff1a;快速、高效&#xff0c; 依赖少只有一个jar包&#xff0c;面向对象&#xff0c;数据传输解析方便 缺点&#xff1a;速度较慢 mvn依赖 <dependency><groupId>com.go…

版块控制---git

引入 设想&#xff0c;当我们写论文时&#xff0c;对第一版不够满意时&#xff0c;想做出修改但是又怕修改时回毁掉整个论文版本&#xff0c;所以我们通常会进行备份&#xff0c;以防止数据被修改后的崩毁&#xff0c;版块控制就是这个合理创建管理备份的过程&#xff0c;而且这…

BLE 蓝牙客户端和服务器连接

蓝牙通信在设计小型智能设备时非常普遍&#xff0c;之前一直没有使用过&#xff0c;最近使用ardunio ESP32 做了一些实验&#xff0c;做了一个收听播客的智能旋钮&#xff08;Smart Knob&#xff09;&#xff0c;它带有一个旋转编码器和两个按键。 本文介绍BLE 服务器Server和W…

图(Graph)的概念和遍历

目录 定义 相关概念 无向图&#xff08;Undirected graphs) 有向图&#xff08;Directed graphs&#xff09; 完全图 稀疏图 稠密图 权&#xff08;Weight&#xff09; 网&#xff08;Network&#xff09; 子图&#xff08;Subgraph&#xff09; 图的顶点与边间关系 …

python成长技能之正则表达式

文章目录 一、认识正则表达式二、使用正则表达式匹配单一字符三、正则表达式之重复出现数量匹配四、使用正则表达式匹配字符集五、正则表达式之边界匹配六、正则表达式之组七、正则表达式之贪婪与非贪婪 一、认识正则表达式 什么是正则表达式 正则表达式&#xff08;英语&…

Unity图形学之RenderQueue

1.指定物体的渲染顺序 Tags { “Queue” “XXXX” } 取值类型&#xff1a; Background&#xff1a; 对应数值为 1000&#xff0c;用于需要被最先渲染的对象&#xff0c;。 Geometry&#xff1a; 对应数值为 2000, 用于不透明的物体。这个是默认的选项&#xff08;如果不指明…

i春秋-破译(凯撒密码+数字替换单词中的字母)

练习平台地址 竞赛中心 题目描述 题目内容 就是破译&#xff01;&#xff01;&#xff01; 解题 观察到最后一段是四个字母加上{xxxxx}的形式&#xff0c;很像flag&#xff0c;我们猜测要破译的主要是这个片段 大括号依然存在&#xff0c;那么可能是通过凯撒密码来加密的&a…

丹摩征文活动|平台评测与使用体验报告

一、基本信息 目标产品 丹摩智算平台www.damodel.com 体验设备 台式机 体验系统/环境 Windows 10/浏览器 体验时间 2024/11 二、产品信息 产品类型&#xff1a;云计算服务提供商 产品定位&#xff1a;提供AI开发和算力GPU租赁服务的平台。它旨在简化AI开发流程&#…

Stable Diffusion核心网络结构——CLIP Text Encoder

&#x1f33a;系列文章推荐&#x1f33a; 扩散模型系列文章正在持续的更新&#xff0c;更新节奏如下&#xff0c;先更新SD模型讲解&#xff0c;再更新相关的微调方法文章&#xff0c;敬请期待&#xff01;&#xff01;&#xff01;&#xff08;本文及其之前的文章均已更新&…

20241118给荣品PRO-RK3566开发板刷Rockchip原厂的buildroot后使用iperf3打流

20241118给荣品PRO-RK3566开发板刷Rockchip原厂的buildroot后使用iperf3打流 2024/11/18 16:38 缘起&#xff0c;使用荣品的DTS。 Y:\RK3566_RK3568_Linux5.10_V1.2.0\device\rockchip\.chips\rk3566_rk3568\rockchip_rk3566_evb2_lp4x_v10_defconfig 1、指定RK_KERNEL_DTS_NAM…

基于java+SpringBoot+Vue的基于web的智慧社区设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

分析一个库 便于以后的使用 WiFiManager.h 2024/11/18

这一段是开启服务器 的 这些都不是重点 重点是那个R_update ,没猜错的话应该是升级的功能 直接索引到定义看看 ,很明显这里是设置了一个 web 访问地址 那就只有换个思路往后查找 handleUpdate 找到这个函数定义 void WiFiManager::handleUpdate() {#ifdef WM_DEBUG_LEVELDEBUG…

学习笔记024——Ubuntu 安装 Redis遇到相关问题

目录 1、更新APT存储库缓存&#xff1a; 2、apt安装Redis&#xff1a; 3、如何查看检查 Redis版本&#xff1a; 4、配置文件相关设置&#xff1a; 5、重启服务&#xff0c;配置生效&#xff1a; 6、查看服务状态&#xff1a; 1、更新APT存储库缓存&#xff1a; sudo apt…

【MySQL系列】深入理解MySQL中的存储、排序字符集

前言 在创建数据库时&#xff0c;我们经常会需要填写数据库的所用字符集、排序规则&#xff0c;字符集和排序规则是两个非常重要的概念&#xff0c;它们决定了数据库如何存储和比较字符串数据。在 MySQL 中&#xff0c;常用的存储字符集有 utf8、utf8mb4&#xff0c;而排序字符…

tcp 超时计时器

在 TCP&#xff08;传输控制协议&#xff09;中有以下四种重要的计时器&#xff1a; 重传计时器&#xff08;Retransmission Timer&#xff09; 作用&#xff1a;用于处理数据包丢失的情况。当发送方发送一个数据段后&#xff0c;就会启动重传计时器。如果在计时器超时之前没有…