【小沐学C++】vs2017 + vcpkg包管理工具
目录
1.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???
谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ ` )っ!!!
更多推荐
所有评论(0)