【3】vcpkg使用_1vcpkg集成到VisualStudio
来源:http://www.tudoupe.com时间:2022-03-01
文章目录
- 简介
- 目标
- 阅读基础
- 快速阅读
- 环境说明
- 什么是集成?
- 集成到全局
- 移除全局集成
- 集成到工程
- 生成配置包
- 配置VS
- 配置工程
- 测试使用
- 常见问题
- 集成到CMake
- 集成静态库
- 使用Vcpkg时的注意点
- 总结
- 其它
- 参考资料
- 相关资源下载
- 最近更新
- 小有收获
- 欢迎关注微信公众号
简介
目标
在vs2019中集成vcpkg。
阅读基础
熟悉计算机。
快速阅读
了解的部分跳过。
环境说明
Windows 7或更新的版本GitVisual Studio 2015 Update 3或更新的版本(包含英文语言包)
什么是集成?
vcpkg安装好了一些第三方库,那如何使用呢?常规情况下,我们需要设置include目录、lib目录等,会有很多工作量。Vcpkg提供了一套机制,可以全自动的适配目录,而开发者不需要关心已安装的库的目录在哪里,也不需要设置。这是Vcpkg的一大优势。
集成到全局
“集成到全局” 适用于Visual Studio开发环境和msbuild命令行。执行命令:
执行情况如下图:

当出现Applied user-wide integration for this vcpkg root.字样的时候,说明已经集成成功。这时候可以在任意的工程中使用安装好的第三方库。
移除全局集成
移除全局集成只要执行下列命令即可:
执行情况如下图:

集成到工程
上面已经可以集成到全局,为什么还要 “集成到工程” 呢?
因为在大部分情况下,我们不希望集成到全局,毕竟有很多第三方库我们希望自定义处理一下,或者干脆不想集成第三方库。那么集成到工程是最灵活的处理方式。也是工程级项目推荐的处理方式。
“集成到工程” 是整个vcpkg中最复杂的一项,它需要利用Visual Studio中的nuget插件来实现。我们接下来一步一步来说。
生成配置包
为使用单个VS项目生成引用NuGet包。执行命令:
执行情况如下图:

这时候会在<vcpkg_dir>scriptsbuildsystems目录下,生成nuget配置文件,我的是vcpkg.E.src.vcpkg.1.0.0.nupkg,E代表vcpkg所在的磁盘。其中<vcpkg_dir>是指vcpkg实际所在目录。如下图:

配置VS
打开Visual Studio--》点击继续但无需代码。如下图:

点击菜单工具 --》NuGet包管理器 --》 程序包管理器设置。如下图:

点击 程序包源–》点击绿色加号–》修改名称为vcpkg–》点击…浏览目录–》定位到NuGet包所在的位置vcpkg目录下的“scriptsbuildsystems”目录。我的是E:srcvcpkgscriptsbuildsystems。如下图:

到此,全局性的设置已经完成,以后不必再重复设置了。
配置工程
用Visual Studio创建或打开一个工程或解决方案。如下图:

右键点击需要设置的工程,选择管理NuGet程序包。如下图:

在右上角的程序包源中选择刚刚设置的vcpkg–》点击浏览选项卡中就可以看到vcpkg.E.src.vcpkg。如下图:

点击vcpkg.E.src.vcpkg–》点击最右侧的安装。如下图:

点击确定。如下图:

成功集成到工程。如下图:

测试使用
将以下代码复制到工程中。
执行代码。如下图:

执行成功。如下图:

到此,就可以在VS上随意使用jsoncpp库了,在exe生成目录下也发现了jsoncpp.dll。如下图:

jsoncpp 的更多使用请参考: 新版jsoncpp的一些基本用法
常见问题
集成到CMake
最新的Visual Studio 2015、2017和2019大力支持CMake工程,所以对cmake的支持当然不能少。在cmake中集成只要在cmake文件中加入下面这句话即可。
其中<vcpkg_dir>是指vcpkg实际所在目录。
集成静态库
Vcpkg默认编译链接的是动态库,如果要链接静态库,目前还没有简便的方法。需要做如下操作
- 用文本方式打开
vcxproj工程文件。 - 在 xml 的段里面增加如下两句话即可:
在CMake中集成静态库,需要额外指令:
使用Vcpkg时的注意点
Vcpkg仅支持Visual Studio 2015 update 3及以上版本,究其原因,很可能和C++11的支持度以及集成原理有关系。- 目前
Vcpkg编译静态库,默认只支持MT模式。
总结
介绍了在vs2019中集成vcpkg。
其它
参考资料
无
相关资源下载
无
最近更新
查看本文最近更新请点击
小有收获
有收获记得三连哦:?

欢迎关注微信公众号

相关新闻
- 2023-04-16 2台电脑怎么共享(2台电脑怎么共享
- 2023-04-16 主板检测卡代码(电脑主板检测卡代
- 2023-04-16 dnf未响应(dnf未响应老是上不去)
- 2023-04-16 ppoe(pppoe拨号上网)
- 2023-04-16 网速不稳定(网速不稳定是路由器的
- 2023-04-16 wds状态(Wds状态成功)
- 2023-04-16 光标键(光标键不动了怎么办)
- 2023-04-16 电脑提速(电脑提速100倍的方法)
- 2023-04-16 切换用户(切换用户怎么切换回来
- 2023-04-16 数据包是什么(产品数据包是什么
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
