vs2017 + vcpkg包管理工具

目录

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下载

GitHub - microsoft/vcpkg: C++ Library Manager for Windows, Linux, and MacOShttps://github.com/microsoft/vcpkg

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

2.vcpkg安装

cd vcpkg
.\bootstrap-vcpkg.bat

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

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配置文件。

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

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

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

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的整合。

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

3.8移除一个开源库

vcpkg remove xxx

后续

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

猜你喜欢

转载自blog.csdn.net/hhy321/article/details/120595738