【vcpkg】安装与使用
安装
mkdir /path/to/vcpkg_dir
cd /path/to/vcpkg_dir
git clone https://github.com/microsoft/vcpkg
cd vcpkg
./bootstrap-vcpkg.bat
更新 vcpkg
cd /path/to/vcpkg_dir/vcpkg
git pull
卸载 vcpkg
若要卸载 vcpkg
,只需删除 vcpkg
目录。 删除此目录会卸载 vcpkg
分发以及 vcpkg
已安装的所有库。
但是,如果已执行 vcpkg integrate install
,则应执行 vcpkg integrate remove
来确保在删除文件夹之前已清理集成 。
使用
命令
Command | 描述 |
---|---|
vcpkg search [pat] |
搜索可安装的包 |
vcpkg install <pkg>... |
安装包 |
vcpkg remove <pkg>... |
卸载包 |
vcpkg remove --outdated |
卸载所有过期包 |
vcpkg list |
列出已安装的包 |
vcpkg update |
显示用于更新的包列表 |
vcpkg upgrade |
重新生成所有过期包 |
vcpkg hash <file> [alg] |
通过特定算法对文件执行哈希操作,默认为 SHA512 |
vcpkg integrate install |
使已安装包在用户范围内可用。 首次使用时需要管理权限 |
vcpkg integrate remove |
删除用户范围的集成 |
vcpkg integrate project |
为使用单个 VS 项目生成引用 NuGet 包 |
vcpkg export <pkg>... [opt]... |
导出包 |
vcpkg edit <pkg> |
打开端口进行编辑(使用 %EDITOR%,默认为“code”) |
vcpkg create <pkg> <url> [archivename] |
创建新程序包 |
vcpkg cache |
列出缓存的已编译包 |
vcpkg version |
显示版本信息 |
vcpkg contact --survey |
显示联系信息,以便发送反馈。 |
vcpkg help triplet |
查看支持平台 |
选项
选项 | 描述 |
---|---|
--triplet <t> |
指定目标体系结构三元组。 (默认:%VCPKG_DEFAULT_TRIPLET% ,另请参阅 vcpkg help triplet ) |
--vcpkg-root <path> |
指定 vcpkg 根目录(默认:%VCPKG_ROOT% ) |
集成vcpkg
cd /path/to/vcpkg_dir/vcpkg
./vcpkg integrate install
输出
PS E:\repos\VC\vcpkg> vcpkg integrate install
Applied user-wide integration for this vcpkg root.
CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=E:/repos/VC/vcpkg/scripts/buildsystems/vcpkg.cmake"All MSBuild C++ projects can now #include any installed libraries. Linking will be handled automatically. Installing new libraries will make them instantly available.
删除 vcpkg 集成
cd /path/to/vcpkg_dir/vcpkg
./vcpkg integrate remove
单独使用 CMake, 不使用 VS
环境变量
# 为了方便使用可以建立一些环境变量
# vcpkg 的安装目录
VCPKG_ROOT = /path/to/vcpkg# vcpkg 集成后的工具链
VCPKG_TOOLCHAIN_FILE = %VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake# 指定默认安装平台
VCPKG_DEFAULT_TRIPLET = x64-windows
cmakelists.txt 配置
# 集成 vcpkg 后在 project() 之前添加
# 如果使用 VS ,就不需要添加
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_TOOLCHAIN_FILE}" CACHE STRING "")
...
project(...)
...
示例
安装 jsoncpp
# 使用指令:vcpkg help triplet 可以看到都支持什么平台。
vcpkg help triplet# 下载某一个平台的包(未指定默认)
vcpkg install jsoncpp:x64-windows
# 下载某一个平台的包(指定默认)
vcpkg install jsoncpp# 删除库
vcpkg remove jsoncpp
# 注意:
# 这个时候只是移除了默认的x86-winodws版本的文件,如果有其他平台的版本需要移除,需要制定相应的triplet
升级包
# 列出需要升级的包
vcpkg upgrade # 执行升级操作
vcpkg upgrade --no-dry-run