![194fd0f09a7e8a3b711ff601bb95186a.png](https://i-blog.csdnimg.cn/blog_migrate/ab43c2d03e9bee22e28715d6a936fcca.jpeg)
用过python的小伙伴肯定知道python有个非常好用的包管理工具pip,很简单的一行命令就可以下载我们需要的第三方库。
pip install requests #下载requests库
最近手上有个cpp的项目,需要用到一些开源库,例如spdlog,查了一下cpp有没有类似于pip的管理工具,于是找到了vcpkg,vcpkg可以帮助我们在Windows、Linux和MacOs上管理C和C++库。
接下来介绍一下如何安装使用vcpkg并集成到Visual Studio开发环境。
vcpkg依赖PowerShell-core与CMake,虽然在编译vcpkg的时候会自动检测并下载,奈何速度实在太慢,因此建议先手动下载安装。
PowerShell与CMake安装完成后,先从git把vcpkg源码clone到我们本地。
git clone https://github.com/microsoft/vcpkg
接着进入vcpkg文件夹
cd vcpkg
运行vcpkg的编译脚本,可以说很贴心了
.bootstrap-vcpkg.bat
编译成功后会在vcpkg文件夹里生成一个vcpkg.exe程序,到这里vcpkg就算安装成功了。
我们现在可以使用
.vcpkg.exe install xxx
命令来安装需要的库了,是不是跟pip很像,简单暴力易上分。但是要注意一点,C和C++的库是需要本地编译的,vcpkg默认的编译方式是x86动态库,对应Visual Studio中生成方式多线程DLL(MD),可以通过
.vcpkg.exe help triplet
命令查看vcpkg支持的编译方式
arm-uwp
arm-windows
arm64-uwp
arm64-windows
x64-linux
x64-osx
x64-uwp
x64-windows
x64-windows-static
x86-uwp
x86-windows
x86-windows-static
可以看到支持的编译模式有很多,我自己的项目需要的是x86的静态编译模式,因此我安装的命令是
.vcpkg.exe install spdlog:x86-windows-static
对应的代码生成方式是多线程(MT)
安装完成后可以通过
.vcpkg.exe list
来查看已经安装的开源库
当然这还远远没有结束,我们还需要把vcpkg安装的库集成到Visual Studio的开发环境,我们需要运行
.vcpkg integrate install
如果我们想分离vcpkg与Visual Studio开发环境则是运行
.vcpkg integrate remove
上述方法是全局集成,所有的项目皆可访问vcpkg安装的库,项目集成等我用到了再写叭。
如果安装的库不是以静态编译的,那VS+vcpkg的整合到这里就已经结束了。不过我使用了静态编译,因此还需要多一步配置,找到VS项目文件xxxx.vcxproj,打开后找到<PropertyGroup Label="Globals">节点,在里面添加
<VcpkgTriplet Condition="'$(Platform)'=='Win32'">x86-windows-static</VcpkgTriplet>
<VcpkgTriplet Condition="'$(Platform)'=='x64'">x64-windows-static</VcpkgTriplet>
保存后重新加载项目,至此才算完成了VS+vcpkg的整合。