搜索可用库

1
vcpkg search ***

安装三方库

1
2
3
4
5
vcpkg install boost:x64-windows

#移除一个开源库(已安装)注意:1. 默认移除 x86-winodws 版本库,如需移除其他版本库,需指定。
#2. 只移除库本身,源码包和解压后的源码并未移除。
vcpkg remove curl

默认情况下,Vcpkg使用的编译环境是x86-windows, x64-linux.cmake或x64-osx.cmake。

列出已安装的开源库

1
vcpkg list

更新已安装的开源库

想要更新已安装的开源库,一般有两个指令:一个是update指令,可以显示可以升级的开源库的列表;另一个是upgrade的指令,会重新编译所有需要更新的包。

导出已安装的开源库

想要导出已安装的开源库,那么执行 export 指令即可。比如我们要导出 curl 库:

1
2
3
4
5
6
7
8
9
10
vcpkg export curl --7zip

#注意:默认导出 x86-windows 版本库,如需导出其他版本,需指定。
默认导出 vcpkg 目录下,默认导出包名称 vcpkg-export-日期-时间,如需指定目录和名称,使用 “-output=” 参数。
     导出必须指定包格式:
       --raw:以目录格式导出
       --nuget:以 nuget 格式导出
       --ifw:未知
       --zip:以 zip 格式导出
       --7zip:以 7z 格式导出

导入已备份的开源库

1
vcpkg import xxx.7z

集成至Visual Studio中(Windows)

1
2
3
4
vcpkg integrate install

#取消集成
vcpkg integrate remove

好用的库-安装多个库

1
vcpkg install opencv4 eigen3 glm freeimage opencv opencv[contrib] opencv[ade] opencv[cuda] ceres opengl ceres boost glad glew --keep-going

解决网速慢

方法1:先下载,后编译

1
2
vcpkg.exe install ceres --only-downloads
vcpkg.exe install ceres

方法2:改端口

1
2
3
4
5
6
如果有proxy(没有就不用看了),下载还是很慢,就是端口号没设置好。
在powershell中,注意是powershell而不是dos(不会真的有人用dos配置vcpkg吧),输入如下代码设置环境变量:
下面只是临时改环境变量,

$env:HTTP_PROXY="localhost:4780"
$env:HTTPS_PROXY="localhost:4780"

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
集成到全局:vcpkg integrate install
移除全局:vcpkg integrate remove
集成到工程:vcpkg integrate project(在“\scripts\buildsystems”目录下,生成nuget配置文件)
查看库目录:vcpkg search
查看支持的架构:vcpkg help triplet
指定编译某种架构的程序库:vcpkg install xxxx:x64-windows(x86-windows)
卸载已安装库:vcpkg remove xxxx
指定卸载平台:vcpkg remove xxxx:x64-windows
移除所有旧版本库:vcpkg remove --outdated
查看已经安装的库:vcpkg list
更新已经安装的库:vcpkg update xxx
导出已经安装的库:vcpkg export xxxx --7zip(–7zip –raw –nuget –ifw –zip)

vcpkg 目录文件及文件夹说明

1
2
3
4
5
6
7
8
9
10
11
buildtrees - 包含从中生成每个库的源的子文件夹,一般在xxxx.clean文件夹下。
docs - 文档和示例。
downloads - 所有已下载的工具或源的缓存副本。 运行安装命令时,vcpkg 会首先搜索此处。
installed - 包含每个已安装库的标头和二进制文件。 与 Visual Studio 集成时,实质上是相当于告知它将此文件夹添加到其搜索路径。
packages - 在不同的安装之间用于暂存的内部文件夹。
ports - 用于描述每个库的目录、版本和下载位置的文件。 如有需要,可添加自己的端口。
scripts - 由 vcpkg 使用的脚本(CMake、PowerShell)。
toolsrc - vcpkg 和相关组件的 C++ 源代码。
triplets - 包含每个受支持目标平台(如 x86-windows 或 x64-uwp)的设置。

更新包指令 vcpkg upgrade --no-dry-run

参考

vcpkg国内镜像使用方法 - 知乎 (zhihu.com)

Vcpkg——C++包管理工具 - 知乎 (zhihu.com)

vcpkg:跨平台 C++ 包管理器的安装教程 - hik_wxy - 博客园 (cnblogs.com)