背景
在这篇文章中,我费尽心机的在VS2013上集成libconfig库,虽然最终终于在各种机缘巧合之下成功了,但是仍然花费了我小半天的时间。在查找资料的过程中,我发现了一款C++安装第三方库的神器。
有了这款神器,安装C++的库就和安装Python的库一样,只需要vcpkg.exe install XXX
就可以安装完毕。
准备
vcpkg支持的开发环境有VS2015,VS2017,VS2019。在大多数情况下也支持vs2013。但是官方并没有支持VS2013,只是刚刚好可以用而已。为了一劳永逸,最大限度的降低C++库安装的频率,我选择VS2019+vcpkg。
所以需要VS2019下载器和vcpkg源代码。
先安装VS2019再编译vcpkg。
安装VS2019
从这个网站下载VS2019社区版。推荐社区版,对于个人用户而言,社区版已经满足了过量需求而且免费,不需要破解。(想想VS2013破解了之后用的功能还是调试、单步执行、端点。。。高级功能一个都用不上)下载正版的好处还有可以登录账号,VS2019的网络功能及其强大,可以连接你的Github账户、将代码保存到云空间从而做到不同地点同步等等。
安装过程可以看这篇文章
应该不是网络的问题,在我即使科学上网,也无法安装完成,但是取消Linux组件之后,就可以完美运行。知道的小伙伴了可以评论区告诉我原因。
安装vcpkg
在Github上下载vcpkg。
下载完成之后运行.bat文件,即可完成编译,在当前目录下生成vcpkg.exe文件。
使用vcpkg
参考https://blog.csdn.net/cjmqas/article/details/79282847
- 查看Vcpkg支持的开源库列表
执行命令
.\vcpkg.exe search
结合findstr命令,可以看vcpkg是否可以安装我们想要的库。查找是否有opencv的命令如下。
vcpkg.exe search | findstr opencv
- 安装一个开源库
这里的“安装”其实是指下载和编译。
比如我们需要安装常用的jsoncpp库,那么执行命令
.\vcpkg.exe install jsoncpp
- Vcpkg和Visual Studio的集成
上面我们已经安装了一些第三方库,那如何使用呢?常规情况下,我们需要设置include目录、lib目录等,会有很多工作量。Vcpkg提供了一套机制,可以全自动的适配目录,而开发者不需要关心已安装的库的目录在哪里,也不需要设置。这是Vcpkg的一大优势。
3.1. 集成到全局
“集成到全局”适用于Visual Studio开发环境和msbuild命令行。执行命令:
.\vcpkg.exe integrate install
当出现“Applied user-wide integration for this vcpkg root.”字样的时候,说明已经集成成功。这时候可以在任意的工程中使用安装好的第三方库。
3.2. 移除全局集成
移除全局集成只要执行下列命令即可:
.\vcpkg.exe integrate remove
- 集成静态库
根据我的测试,VS2019不可以使用一下方法。
不过还是有其他奇技淫巧的。
Vcpkg默认编译链接的是动态库,如果要链接静态库,目前还没有简便的方法。需要做如下操作
用文本方式打开vcxproj工程文件
在xml的段里面增加如下两句话即可
<VcpkgTriplet>x86-windows-static</VcpkgTriplet>
<VcpkgEnabled>true</VcpkgEnabled>
在CMake中集成静态库,需要额外指令
cmake .. -DCMAKE_TOOLCHAIN_FILE=.../vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x86-windows-static