我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

是的,cpp项目也有包管理工具,叫做vcpkg。使用vcpkg就可以很方便的管理ccpp的知名第三方包了。所以,苏南大叔在前些篇文章里面,处理spdlog/nng/magic_enum等第三方包的时候,虽然管用也解决了问题,但是不免显得有些不专业了。

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - vcpkg包管理工具
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程经验总结。本文测试环境:win10vcpkg@2023.11.20vs2019vcpkg的下载安装部分是非常奇怪的,非常的不走寻常路,脑回路不是一般的清奇,处处透露着一种诡异。

下载vcpkg源码

官方github地址是:

【途径一】网上教程都是说要去git clone它的仓库,苏南大叔觉得不是太稳妥。毕竟master分支可不是release。在以往的经验中,master分支出现各种问题的情况,也不少见,所以大家自行选择分支。

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

【途径二】或者来这边找个最新的releasesource.zip下载:

看地址,既然是微软维护的,那为啥不直接集成在visual studio里面呢?

拿到的源码结构如下:

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - vcpkg目录结果
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-2)

下载vcpkg.exe

是的,没看错。这一步是下载vcpkg.exe,这个vcpkg.exe还不是上面源码编译得到的,是执行上面源码下的bootstrap-vcpkg.bat文件,然后该文件下载得到的(对,并不是编译)。

提示类似如下:

Downloading https://github.com/microsoft/vcpkg-tool/releases/download/2023-12-12/vcpkg.exe -> D:\downloads\vcpkg-2023.12.12\vcpkg.exe...

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - vcpkg-exe下载
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-3)

可以注意到:这里提及了另外一个microsoft/vcpkg-tool的地址,以后可以去研究一下。
如果网络不好,这个文件还贴心的告诉你可以直接浏览器下载也可以,建议直接迅雷。
注意:得到的vcpkg.exe要放在上面源码的根目录下面,不可以单独放在别的地方。无法单独使用!!!

win系统识别vcpkg

vcpkg的系统识别,要设置两个系统变量。第一个系统变量里面的path,比较好理解。为了方便在任意地方调用而设置的。

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - 环境变量1
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-4)

vcpkg识别将来类库的目录【非必须】

第二个变量名是:VCPKG_ROOT,值是:<下载到的源码加exe的最终存放目录>。它的存在主要是为了指出存放vcpkg下载各种类库的地方。

默认路径就挺好,不用设置新的值。

vstudio识别vcpkg

依然还差一步,系统识别出vcpkg之后,还需要visual studio识别出vcpkg。以便对cpp项目进行编译的时候,能够直接识别出来类库。

话说为啥人家python下的pip就不用这样一步?
vckpg integrate install

这个命令在哪里执行都可以。执行完,会有提示“All MSBuild C++ projects can now $include any installed libraries.”,以后的cpp项目,就可以直接使用相关的第三方库了。

执行之后,visual studio的项目配置对话框里面,就会出现一个vcpkg的设置。并且"附加包含目录"里面也会自动出现vcpkginclude目录。

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - 新的vs选项
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-5)

vcpkg查找第三方库

下面以第三方库lame为例,使用时注意替换相关名词。

vcpkg search lame

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - vcpkg命令
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-6)

vcpkg安装第三方库

vcpkg安装一个第三方库,那可是相当的麻烦。因为在前边文章里面也说过了:类库的arch分为win32x64的,并且还分为staticshared。所以,每个下载的第三方库,就必须带上这些区分点。

其它编程语言的包管理工具并没有这么复杂

比如,这里还是以安装lame【实际名称mp3lame】为例:

vcpkg install mp3lame:x86-windows-static

当然这些后缀也不是任意组合的,是在一定范围内进行组合的。组合错了,会有错误提示的。

加速第一次install

苏南大叔理解着:它这个是下载源码,然后在本地进行编译。所以,第一次安装的时候,会比较麻烦。会有很多下载动作。所以,这个过程中,会提示安装各种工具压缩包。如果加速下载的话,可以迅雷下载压缩包,然后放在<vcpkg>/downloads/目录下面。再次执行vcpkg install命令,这个动作就会被加快。

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - downloads目录
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-7)

安装到了哪里

现场编译安装完的库源码,可以来这里查看:

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - 安装目录
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-8)

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - 安装目录2
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-9)

vcpkg移除第三方库

中文使用的是【移除】,所以英文是【remove】,并不是【uninstall】。

vcpkg remove mp3lame:x86-windows-static

不知道都安装了什么版本,也没有问题。可以故意写错,下面有智能提示的。

苏南大叔:win系统,如何安装使用cpp项目的vcpkg包管理工具? - vcpkg-list
win系统,如何安装使用cpp项目的vcpkg包管理工具?(图10-10)

相关链接

结语

更多cpp相关文章,请点击苏南大叔的博客:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   cpp