C++第三方库管理工具vcpkg使用教程
目录
一、vcpkg介绍
在使用C/C++编写项目时, 引用第三方库是很麻烦的事, 需要手动下载源码然后编译最后再添加到项目里,配置头文件、lib、dll,如果是一个简单点的库,编译加配置起来也不麻烦,可能半个小时或一个上午就能解决;如果是一个复杂点的库,那可能是一天、乃至一周可能都无法编译成功,例如ffmpeg, openssl,gRPC等等,这些库在windows上的的编译极其麻烦,如果是新手,可能更痛苦。相比 java有maven,python有pip,go有go mod, C#有NuGet,Rust有cargo,这些语言在导入第三方库时都很方便,修改版本也方便,但是对于C++项目则很痛苦,vcpkg的出现解决了C/C++编译第三库困难的问题,vcpkg跨平台, 在windows、linux、MacOS都可以使用。安装vcpkg,想要使用哪个库,vcpkg只要一条命令, 直接用安装编译,无需配置头文件、lib、dll, 直接写代码即可,十分的方便。
官网:https://vcpkg.io/en/index.html

点击Get started可以查看如何安装vcpkg
点击Browse Packages可以查找想要的库
下面介绍在window系统如何安装使用vcpkg.
二、vcpkg安装
安装vcpkg之前,先查看Windows PowerShell版本,打开 PowerShell,输入:
$PSVersionTable
如果看到:
5.1.xxxxx → 是系统自带 Windows PowerShell
7.x.x → 是新版 PowerShell 7
如果是5开头的版本,需要更新PowerShell,否则以后安装C++库时会失败。打开 https://github.com/Microsoft/vcpkg找到最新的Release版本,下载安装即可。安装完成后,修改PowerShell的默认配置,如下图:

选择新安装的PowerShell

下面开始安装vcpkg
打开git bash,开始clone vcpkg, 命令:
git clone https://github.com/microsoft/vcpkg.git
如果网络不好,可能无法clone, 需要有合理良好的网络环境。vcpkag clone ok后,cd到vcpkg目录,执行脚本bootstrap-vcpkg.bat下载vcpkg.exe,如下图:

执行结束之后在当前目录就可以看到vcpkg.exe, 如下图:

三、vcpkg具体使用
1、演示安装jsoncpp库
将vcpkg.exe目录添加到系统path, 以后在任意目录都可以执行vcpkg.exe命令了,但是安装的文件依然是在vcpkg目录,安装第三方库的命令:
vcpkg install [name]
比如安装jsoncpp库,输入以下命令进行安装
.\vcpkg install jsoncpp
默认安装的是32位(现在基本是x64版本)的,如下图

首次安装时会比较慢,耐心等待。
库的安装位置

2、指定位数安装
指定版本安装前,先查找是否存在对应的版本,命令
.\vcpkg search 库的名字
例如查找asdf库是否存在

asdf这个库显然是没有的,下面看看ffmpeg是否有

当然去官网也可以查看,在官网可以明确的知道支持哪些版本

如果需要指定版本安装,比如安装64位jsoncpp的,命令如下:
vcpkg install jsoncpp:x64-windows
32位
vcpkg install jsoncpp:x86-windows
如下图

3、查找支持的系统架构
如何查看版本位数呢,输入如下命令:
./vcpkg help triplet
如下图

4、查看已经安装了哪些库
命令
./vcpkg list
输入 ./vcpkg list,如下图

5、如何卸载vcpkg
直接删除目录即可
四、如何集成到visual studio
下面介绍如何把vcpkg集成到visual studio。
1、集成到Visual Studio全局
集成到Visual Studio全局,此种情况所有项目都可以使用vcpkg的库,命令如下:
.\vcpkg integrate install
注意:部分库在vs里使用可能有问题,例如没有debug版本,导致编译链接失败,此时需要自己下载源码编译,再添加到项目中。
2、移除全局集成
移除全局集成只要执行下列命令即可:
.\vcpkg integrate remove
3、集成到工程
.\vcpkg integrate project
五、集成到CMake
现在的Visual Studio已经支持CMake了,在cmake中集成只要在cmake文件中加入下面这句话即可。
-DCMAKE_TOOLCHAIN_FILE=<vcpkg_dir>/scripts/buildsystems/vcpkg.cmake"
六、如何使用vcpkg下载好的库
建议还是copy到项目目录,去vcpkg的packages目录找到各个库的include, lib, dll, 注意lib目录默认是release版,debug的lib dll需要去debug目录拷贝.
mac、linux也可以使用,按照官网的指引进行安装即可。
七、vcpkg常用命令
设置并发编译
set VCPKG_MAX_CONCURRENCY=12
八、需要注意的地方
如果电脑上安装了多个vs版本,比如同时安装了vs2019和vs2022, 可能以vs2022来安装,会导致vs2019上无法使用vcpkg的库
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)