当前位置: 首页 > 工具软件 > Vcpkg > 使用案例 >

C++ vcpkg 安装

淳于知
2023-12-01

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

只要在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模式。

 类似资料: