一、什么是Vcpkg?
Vcpkg是一个开源的C/C++库包管理器,可帮助你在 Windows、 Linux 和 MacOS 上管理 C 和 C++ 库,其的目标是提供一个跨平台、开放源代码的工具,使得开发者能够方便地获取和使用各种第三方库。
二、下载并配置Vcpkg
1. 准备条件
①git(option)
这是克隆源码的工具,当然大家也可以选择不使用该工具,直接下载源码压缩包
不过作为开发者,git是必需的一样工具,有些源码还涉及到其他模块的克隆(用到--recursive,克隆子模块),这时候手动下载源码下载下来的是不全的
具体的git配置教程,可参阅:Git 详细安装教程(详解 Git 安装过程的每一个步骤)_git安装-CSDN博客
②Visual Studio
推荐2019版本,不新也不旧是最好的
在安装Visual Studio时,在语言包一栏将英文一起勾选,避免后续使用Vcpkg管理第三方库时报bug,如果你已经安装好,那么按照以下步骤进行英文语言的修改:
1)打开【Visual Studio Installer】
2)点击【修改】
3)勾选【英语】-->点击右下角【修改】,等待完成即可
我这里最初安装时已经勾选过,不需要再次进行修改,所以没有【修改】按钮
③CMake安装
具体安装过程参阅:
Windows下的CMake详细安装教程(2024/1/24)-CSDN博客
2. 下载Vcpkg
使用git提供的克隆命令:
git clone https://gitcode.com/microsoft/vcpkg.git
or
git clone https://github.com/microsoft/vcpkg.git
3. 安装Vcpkg
方法1:
双击【bootstrap-vcpkg.bat】文件
方法2:
在你Vcpkg文件夹内,点击鼠标右键,选择【在终端打开】
在打开的窗口中输入: .\bootstrap-vcpkg.bat
两种方法的本质都是执行自动安装过程。
等待安装完成即可:
安装完成后你会在自己的文件夹中看到vcpkg.exe
4. 集成Vcpkg至Visual Studio
文件夹内右键打开终端,执行下述命令:
./vcpkg integrate install #集成到全局
得到下述结果即代表成功:
同时在你的VS的项目属性中可看到:
很多刚接触Vcpkg的小白可能还不知道执行这一步有什么用,下面我来解释一下:
.\vcpkg integrate install 是 Vcpkg 工具的命令,用于将 Vcpkg 集成到 Visual Studio 项目中。
通过运行这个命令,你可以更方便地在 Visual Studio 中使用 Vcpkg 管理 C++ 项目的依赖关系。这样,你就能够利用 Vcpkg 管理和安装项目所需的库,而不必手动配置项目文件和依赖项。
比如你在使用opencv之前,需要手动去给你的项目配置属性表,但当你使用安装了opencv的集成到VS的Vcpkg时,即使更换项目,也不必再手动配置,可以直接使用opencv库。
当然了,大家也应该学着自己去理解从编译库到配置库的整个流程,多动手才能进步的更快,同时有些项目需要指定某个库以上或以下的版本,这时候Vcpkg就有些捉襟见肘了,总之,都会才是最好的,不要顾此失彼。
最后提供一下:
①移除集成全局命令:vcpkg integrate remove
②集成到工程项目命令(即供单个项目使用):vcpkg integrate project,具体用法可参考:使用vcpkg配置VS环境 - 知乎 (zhihu.com)
5.Vcpkg的使用
下面我将列举几个常用命令:
①安装库
vcpkg install <package-name>:x64-windows #用于安装指定名称的 C++ 库(64架构)
vcpkg install <package-name>:x86-windows #用于安装指定名称的 C++ 库(86架构)
②卸载库
vcpkg remove <package-name> #用于卸载已安装的库
③查看已安装的库
vcpkg list #显示当前项目中已安装的所有库
④搜索可用库
vcpkg search <search-term> #根据关键词搜索 Vcpkg 中可用的库
⑤更新库
vcpkg update <package-name> #更新某个已安装的库
还有很多Vcpckg功能未列举,如果你想深入了解它,可自行查阅文档:
vcpkg/README_zh_CN.md at master · microsoft/vcpkg (github.com)
至此,Vcpkg已安装完成,你现在可以使用其进行辅助项目编译了!
ok,这里是小白学代码i,这篇文章就到此结束,如果你有任何问题或有任何建议指正欢迎私信与我交流,或在评论区进行讨论,我会和大家一起探讨与学习,谢谢大家!
如果你觉得这篇文章写的还不错,欢迎点个赞点个关注,之后我还会继续更新一些教程或代码,和大家一起学习进步!
您的打赏,会给我提供更大的前行动力,谢谢!