win系统,如何安装使用cpp项目的vcpkg包管理工具?
发布于 作者:苏南大叔 来源:程序如此灵动~是的,cpp
项目也有包管理工具,叫做vcpkg
。使用vcpkg
就可以很方便的管理c
和cpp
的知名第三方包了。所以,苏南大叔在前些篇文章里面,处理spdlog
/nng
/magic_enum
等第三方包的时候,虽然管用也解决了问题,但是不免显得有些不专业了。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程经验总结。本文测试环境:win10
,vcpkg@2023.11.20
,vs2019
。vcpkg
的下载安装部分是非常奇怪的,非常的不走寻常路,脑回路不是一般的清奇,处处透露着一种诡异。
下载vcpkg源码
官方github
地址是:
【途径一】网上教程都是说要去git clone
它的仓库,苏南大叔觉得不是太稳妥。毕竟master
分支可不是release
。在以往的经验中,master
分支出现各种问题的情况,也不少见,所以大家自行选择分支。
git clone https://github.com/microsoft/vcpkg.git
【途径二】或者来这边找个最新的release
的source.zip
下载:
看地址,既然是微软维护的,那为啥不直接集成在visual studio
里面呢?
拿到的源码结构如下:
下载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...
可以注意到:这里提及了另外一个microsoft/vcpkg-tool
的地址,以后可以去研究一下。
如果网络不好,这个文件还贴心的告诉你可以直接浏览器下载也可以,建议直接迅雷。
注意:得到的vcpkg.exe
要放在上面源码的根目录下面,不可以单独放在别的地方。无法单独使用!!!
win系统识别vcpkg
vcpkg
的系统识别,要设置两个系统变量。第一个系统变量里面的path
,比较好理解。为了方便在任意地方调用而设置的。
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
的设置。并且"附加包含目录"里面也会自动出现vcpkg
的include
目录。
vcpkg查找第三方库
下面以第三方库lame
为例,使用时注意替换相关名词。
vcpkg search lame
vcpkg安装第三方库
vcpkg
安装一个第三方库,那可是相当的麻烦。因为在前边文章里面也说过了:类库的arch
分为win32
和x64
的,并且还分为static
和shared
。所以,每个下载的第三方库,就必须带上这些区分点。
其它编程语言的包管理工具并没有这么复杂
比如,这里还是以安装lame
【实际名称mp3lame
】为例:
vcpkg install mp3lame:x86-windows-static
当然这些后缀也不是任意组合的,是在一定范围内进行组合的。组合错了,会有错误提示的。
加速第一次install
苏南大叔理解着:它这个是下载源码,然后在本地进行编译。所以,第一次安装的时候,会比较麻烦。会有很多下载动作。所以,这个过程中,会提示安装各种工具压缩包。如果加速下载的话,可以迅雷下载压缩包,然后放在<vcpkg>/downloads/
目录下面。再次执行vcpkg install
命令,这个动作就会被加快。
安装到了哪里
现场编译安装完的库源码,可以来这里查看:
vcpkg移除第三方库
中文使用的是【移除】,所以英文是【remove
】,并不是【uninstall
】。
vcpkg remove mp3lame:x86-windows-static
不知道都安装了什么版本,也没有问题。可以故意写错,下面有智能提示的。
相关链接
结语
更多cpp
相关文章,请点击苏南大叔的博客:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。