vcpkg

1. vcpkg windows 安装boost

安装vcpkg

git clone --recursive -v https://github.com/Microsoft/vcpkg.git
pushd vcpkg

call bootstrap-vcpkg.bat
echo vcpkg integrate remove
echo vcpkg integrate install
echo vcpkg integrate project
popd

安装boost

pushd vcpkg
::arm-uwp,arm-windows,arm64-uwp,arm64-windows,x64-linux,x64-osx,x64-uwp,x64-windows,x64-windows-static
vcpkg install boost:x64-windows-static
::vcpkg export boost:x64-windows-static --7zip
popd

cmake 编写

cmake_minimum_required(VERSION 3.8)

SET(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../dmvcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake")

PROJECT(dmspawn)
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
INCLUDE(cmake/ModuleImport.cmake)
INCLUDE(cmake/ModuleCompileOptions.cmake)
ModuleSetCompileOptions()
ModuleSetWinCompilerFlags()

find_package(Boost COMPONENTS coroutine REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
ExeImport("test" "${Boost_LIBRARIES}")

cmake 构建命令行

vcpkg install boost:x64-windows-static

rmdir /S /Q build
mkdir build
pushd build
cmake -A x64 -DCMAKE_BUILD_TYPE=relwithdebinfo -DVCPKG_TARGET_TRIPLET=x64-windows-static ..
cmake --build . --config relwithdebinfo -- /m:%NUMBER_OF_PROCESSORS%

popd

手动下载源 例如: https://www.libsdl.org/release/SDL2-2.0.14.tar.gz 下载后copy到vckpkg的downloads目录即可 再启动安装脚本.

2. 命令-说明

vcpkg search [pat]

查询当前版本的vcpkg是否支持名字包含所提供的字符串的库。

此命令有一个可选参数:–x-full-desc,这个参数的作用是确保即使库的描述字段过长,也不会被自动的截断

vcpkg install ...

安装一个库,此命令有多个可选参数,详情请参考:Install命令

vcpkg remove ...

卸载一个已安装的库,此命令有5个可选参数:

–purge 同时卸载库的缓存文件,此参数为默认参数

–no-purge 不卸载库的缓存文件,此参数已被遗弃

–recurse 允许卸载未在命令行上明确指定的包

–dry-run 仅显示将被卸载的包,而不执行具体的卸载操作

–outdated 显示将会被卸载的过期的库,但不执行卸载操作,若要执行卸载操作,需要额外添加 –recurse参数

vcpkg list

列出当前vcpkg上已安装的库,此命令有两个可选参数:

–x-full-desc 确保即使库的描述字段过长,也不会被自动的截断 –x-json 以json格式显示安装的库

vcpkg update

显示需要更新的库的列表

vcpkg upgrade

显示需要重新安装的过期库的列表,此命令有两个可选参数:

–no-dry-run 执行具体的安装命令

–keep-going 此参数需和参数–no-dry-run 一同使用,其作用是保证所有过期的库都完成安装,即使中间有某一个库安装失败,整个安装过程也不会立刻停止,而是继续安装下一个库

vcpkg hash [alg]

用特定算法对文件进行哈希,默认为SHA512

vcpkg help topics

显示帮助主题的列表,目前可用的主题如下:

Binarycaching,assetcaching,create,depend-info,edit,env,export,help,install,integrate,list,owns,remove,search,topics,triplet,versioning

vcpkg help

显示特定主题的帮助信息

vcpkg integrate install

使已安装的软件包在整个用户中可用,第一次使用时需要管理员权限

vcpkg integrate remove

删除用户范围内的集成

vcpkg integrate project

生成一个nuget包,供单个VS项目使用

vcpkg integrate powershell

启用PowerShell的标签完成功能

vcpkg export ... [opt]...

导出一个库,此命令有多个可选参数,详情请参考:Export 命令

vcpkg edit

使用编辑器打开一个库进行编辑,此命令有两个可选参数:

–buildtrees 打开编辑器进入特定库的buildtree子文件夹

–all 打开编辑器进入库以及库专用的buildtree 子文件夹使用哪个编辑器是由%EDITOR%这个变量决定的,它的默认值为”code”,表示此命令打开的编辑器默认为VS code,若未安装VS code,则命令不工作

vcpkg create [archivename]

在vcpkg中为一个新的库创建相关的文件,此命令需要3个参数:

新库的名称 库的名称不能和已有的库重名

库文件的下载路径 下载路径必须是可用的链接

压缩包的名称 压缩包的名称是自定义的

执行此命令后,会在.\vcpkg\ports文件夹下创建一个以库名称命名的文件夹,其中包含vcpkg.json文件和portfile.cmake文件

vcpkg owns

在.\vcpkg\installed文件夹下查找包含所提供字符串的文件

vcpkg depend-info ...

显示库的依赖项列表,此命令有5个可选参数:

–dot 在点的基础上创建图形

–dgml 在dgml的基础上创建图形

–show-depth 在输出中显示递归深度

–max-recurse=… 设置最大递归深度,值为-1表示没有限制

–sort=… 设置依赖关系列表的排序顺序,可接受的值是:lexicographical,reverse,topological(默认)

vcpkg env

为开发或编译创建一个干净的cmd环境,此命令有5个可选参数:

–bin 添加installed/x86-windows/bin/的路径到PATH环境变量

–include 添加installed/x86-windows/include/的路径到INCLUDE环境变量

–debug-bin 添加installed/x86-windows/debug/bin/的路径到PATH环境变量

–tools 添加installed/x86-windows/tools/的路径到PATH环境变量

–python 添加installed/x86-windows/python的路径到PYTHONPATH环境变量

vcpkg version

显示vcpkg的版本信息

vcpkg contact

显示vcpkg团队的联系方式以供用户提供反馈

此命令有一个可选参数:–survey, 其作用是启动默认浏览器到当前的vcpkg survey页面,但是目前执行此命令后仅仅只是得到一个提示信息, 而不是打开默认浏览器

vcpkg x-init-registry

目录下初始化一个注册表

给一个registry仓库添加了一个readme文件和license文件

vcpkg x-history

显示目标库在vcpkg上的历史