vs2017 + vcpkg包管理工具

凉夜lrs

关注

阅读 89

2022-09-20


目录

​​1.vcpkg下载​​

​​2.vcpkg安装​​

​​3.vcpkg命令​​

​​3.1查看已经安装的开源库​​

​​3.2集成到全局​​

​​3.3移除全局集成​​

​​3.4集成到工程​​

​​3.5集成静态库​​

​​3.6集成到CMake​​

​​3.7安装一个开源库​​

​​3.8移除一个开源库​​

​​后续​​

1.vcpkg下载

​​​​

vs2017 + vcpkg包管理工具_visual c++

vs2017 + vcpkg包管理工具_visual c++_02

cd e:
mkdir mytest
cd mytest
git clone https://github.com/microsoft/vcpkg.git

vs2017 + vcpkg包管理工具_github_03

2.vcpkg安装

cd vcpkg
.\bootstrap-vcpkg.bat

vs2017 + vcpkg包管理工具_github_04

 当前目录下会生成一个vcpkg.exe。到这里vcpkg就算安装成功了。

vs2017 + vcpkg包管理工具_visual studio_05

3.vcpkg命令

./vcpkg --help
Commands:
vcpkg search [pat] 查找包 Search for packages available to be built
vcpkg install <pkg> 安装包 Install a package
vcpkg remove <pkg>   卸载包 Uninstall a package.
vcpkg remove --purge <pkg> 卸载并删除包(包升级时需要) Uninstall and delete a package.
vcpkg list 列出已安装包 List installed packages
vcpkg update 列出需要升级的包 Display list of packages for updating
vcpkg hash <file> [alg] 对文件进行Hash(默认是SHA512) Hash a file by specific algorithm, default SHA512

vcpkg integrate install Make installed packages available user-wide. Requires admin privileges on first use
vcpkg integrate remove Remove user-wide integration
vcpkg integrate project Generate a referencing nuget package for individual VS project use

vcpkg edit <pkg> Open up a port for editing (uses %EDITOR%, default 'code')
vcpkg import <pkg> Import a pre-built library
vcpkg create <pkg> <url>
[archivename] Create a new package
vcpkg owns <pat> Search for files in installed packages
vcpkg cache List cached compiled packages
vcpkg version Display version information
vcpkg contact Display contact information to send feedback

Options:
--triplet <t> Specify the target architecture triplet.
(default: %VCPKG_DEFAULT_TRIPLET%, see 'vcpkg help triplet')

--vcpkg-root <path> Specify the vcpkg root directory
(default: %VCPKG_ROOT%)

3.1查看已经安装的开源库

.\vcpkg.exe list

3.2集成到全局

常规情况下,我们编译或安装一些第三方库后,需要手动设置 include 目录、lib 目录、环境变量等,会有很多工作量。vcpkg 提供了一套机制,可以全自动的适配目录,而开发者不需要关心已安装的库的目录在哪里,也不需要设置。这是vcpkg的一大优势。

“集成到全局”适用于Visual Studio开发环境和msbuild命令行。执行命令:

.\vcpkg integrate install

3.3移除全局集成

vcpkg integrate remove

3.4集成到工程

因为在大部分情况下,我们不希望集成到全局,毕竟有很多第三方库我们希望自定义处理一下。

.\vcpkg integrate project

这时候会在“vcpkg_root\scripts\buildsystems”目录下,生成nuget配置文件。

vs2017 + vcpkg包管理工具_visual studio_06

打开Visual Studio,点击菜单“工具->NuGet包管理器->程序包管理器设置”,进入设置界面,点击“程序包源”。

vs2017 + vcpkg包管理工具_c++_07

vs2017 + vcpkg包管理工具_c++_08

点击“加号”增加一个源。修改源的名字为vcpkg。在“源”的选项中点击右侧的”…”选择vcpkg目录下的“scripts\buildsystems”目录,然后点击右侧的“更新按钮”。设置已经完成,以后不必再重复设置了。

用Visual Studio 打开一个工程或解决方案。右键点击需要设置的工程,选择“管理NuGet程序包”。在右上角的“程序包源”中选择刚刚设置的“vcpkg”。这样在“浏览”选项卡中就可以看到“vcpkg.H.Repos.vcpkg”。点击最右侧的“安装”。这样就可以集成到某个工程了。

vs2017 + vcpkg包管理工具_c++_09

3.5集成静态库

Vcpkg默认编译链接的是动态库,如果要链接静态库,目前还没有简便的方法。需要做如下操作。用记事本打开vcxproj工程文件。

如果安装的库不是以静态编译的,那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的整合。

vs2017 + vcpkg包管理工具_visual studio_10

3.6集成到CMake

在cmake中集成只要在cmake文件中加入下面这句话即可。

-DCMAKE_TOOLCHAIN_FILE=/scripts/buildsystems/vcpkg.cmake”`
其中是指vcpkg实际所在目录。

cmake .. -DCMAKE_TOOLCHAIN_FILE=E:/mytest/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x86-windows-static

为了使得cmake在构建时能够识别导我们安装的库,我们可以在CmakeLists.txt中添加一行

SET(CMAKE_TOOLCHAIN_FILE "E:/mytest/vcpkg/scripts/buildsystems/vcpkg.cmake")

3.7安装一个开源库

.\vcpkg.exe install xxx

vcpkg会自动下载并补全所需要的其它依赖。这里:x64-windows指定了对应的64位版本,不加的话默认时32位的。

vcpkg 支持以下多种架构,如不指定默认编译成 x86 的 Windows 版本库。

  • arm-uwp
  • arm-windows
  • arm64-uwp
  • arm64-windows
  • x64-uwp
  • x64-windows-static
  • x64-windows
  • x86-uwp
  • x86-windows-static
  • x86-windows

vcpkg install libogg:x86-windows-static
vcpkg install libvorbis:x86-windows-static
vcpkg install libflac:x86-windows-static
vcpkg install opus:x86-windows-static
vcpkg install mp3lame:x86-windows-static 
vcpkg install mpg123:x86-windows-static

.\vcpkg install ompl:x64-windows

vs2017 + vcpkg包管理工具_visual c++_11

3.8移除一个开源库

vcpkg remove xxx

后续

如果你觉得该方法或代码有一点点用处,可以给作者点个赞;╮( ̄▽ ̄)╭
如果你感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进。o_O???
谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ ` )っ!!!

精彩评论(0)

0 0 举报