1、下载vcpkg库,可以通过git下载也可以下载源码包:https://github.com/Microsoft/vcpkg
C:\src\>git clone https://github.com/Microsoft/vcpkg.git
2、运行构建vcpkg.exe
C:\src\>cd vcpkg
C:\src\vcpkg>bootstrap-vcpkg.bat
3、运行如下命令使计算机的所有用户都可以使用vcpkg (备注:需要管理员权限)
vcpkg integrate install
>> CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=C:/Sofe/vcpkg-master/scripts/buildsystems/vcpkg.cmake"
4、使用vcpkg安装任何的程序包,如:
vcpkg install sdl2 curl sqlite3
查看Vcpkg支持的开源库列表
vcpkg search
查看vcpkg总共支持架构:
vcpkg help triplet
指定编译某种架构的程序库
vcpkg install jsoncpp:x64-windows
移除一个已经安装(编译)的开源库,移除也只是移除了二进制程序库而已,源码包和解压缩的源码并没有删除
vcpkg remove jsoncpp
指定平台
vcpkg remove jsoncpp:x64-windows
一键移除“过时”的包
vcpkg remove --outdated
列出已经安装的开源库
vcpkg list
更新已经安装的开源库
update指令,可以显示可以升级的开源库的列表。另一个是upgrade的指令,会重新编译所有需要更新的包。
导出已经安装的开源库,默认情况下只会导出x86-windows的包
vcpkg export jsoncpp --7zip
vcpkg支持5种导出包格式
参数 格式
–raw 以不打包的目录格式导出
–nuget 以nuget包形式导出
–ifw 我也不知道这是啥格式
–zip 以zip压缩包形式导出
–7zip 以7z压缩包形式导出
默认情况下只会导出x86-windows的包,如果要导出所有包,那需要制定相应的triplet
vcpkg export jsoncpp jsoncpp:x64-windows --7zip
等价于:
vcpkg export jsoncpp:x86-windows jsoncpp:x64-windows --7zip
如果要指定输出目录和特定文件名,需使用”–output=”参数
导入备份的开源库
vcpkg import xxx.7z
导出nuget包
vcpkg export librabbitmq:x86-windows --nuget
With a project open, go to Tools->NuGet Package Manager->Package Manager Console and paste:
Install-Package vcpkg-export-20200304-164921 -Source "C:\Sofe\vcpkg"
vcpkg integrate install
移除全局集成
vcpkg integrate remove
集成到工程
vcpkg integrate project
会在“\scripts\buildsystems”目录下,生成nuget配置文件
打开Visual Studio,点击菜单“工具->NuGet包管理器->程序包管理器设置”,进入设置界面,点击“程序包源”。点击“加号”增加一个源。修改源的名字为vcpkg。在“源”的选项中点击右侧的”…”选择vcpkg目录下的“scripts\buildsystems”目录,然后点击右侧的“更新按钮”。点击“确定”,关闭设置对话框。
用Visual Studio 打开一个工程或解决方案。右键点击需要设置的工程,选择“管理NuGet程序包”。在右上角的“程序包源”中选择刚刚设置的“vcpkg”。这样在“浏览”选项卡中就可以看到“vcpkg.H.Repos.vcpkg”。点击最右侧的“安装”。这样就可以集成到某个工程了。
只要在cmake文件中加入下面这句话即可。idea中可以添加在设置里面
-DCMAKE_TOOLCHAIN_FILE=/scripts/buildsystems/vcpkg.cmake
Vcpkg默认编译链接的是动态库,如果要链接静态库,目前还没有简便的方法。需要做如下操作
1、用文本方式打开vcxproj工程文件
2、在xml的段里面增加如下两句话即可
<VcpkgTriplet>x86-windows-static</VcpkgTriplet>
<VcpkgEnabled>true</VcpkgEnabled>
在CMake中集成静态库,需要额外指令
cmake .. -DCMAKE_TOOLCHAIN_FILE=.../vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x86-windows-static
目前Vcpkg编译静态库,默认只支持MT模式。