最近更新于 2026-05-20 00:45
前期准备
确保在 Visual Studio Installer 中已经安装vcpkg 包管理器

开始菜单搜索打开Developer Command Prompt

执行
vcpkg integrate install
显示:
All MSBuild C++ projects can now #include any installed libraries. Linking will be handled automatically. Installing new libraries will make them instantly available.
表示 vcpkg 已经融入 VS 环境中。

vcpkg 清单
我这里有一个 C++ 项目,打开它的属性可以看到有 vcpkg 项。

📊 Visual Studio vcpkg 属性页设置项一览表
| 分组 | 设置项名称 (Property) | 常见推荐值 | 核心功能与底层原理简述 |
|---|---|---|---|
| General (通用) |
Use Vcpkg (使用 Vcpkg) |
是 | 总开关:控制是否将 vcpkg 的头文件和库路径自动注入当前项目。若设为“否”,整个组件失效。 |
| Use Vcpkg Manifest (使用 Vcpkg 清单) |
是 | 模式切换:决定是否激活清单模式。设为“是”时,VS 会强制读取项目根目录下的 vcpkg.json 并交出依赖控制权。 |
|
| Install Vcpkg Dependencies (安装 Vcpkg 依赖) |
是 | 自动化开关:点击“生成”时,VS 是否在后台自动运行 vcpkg install 去下载并编译你缺失的第三方库。 |
|
| Use AutoLink (使用自动链接) |
是 | 解放双手:MSVC 特性。开启后你只需要 #include 头文件,底层脚本会自动帮你关联对应的 .lib 文件,无需手动在链接器中配置库名字。 |
|
| App-locally deploy DLLs (应用程序本地部署 DLL) |
是 | 动态库复制:若依赖项含有 .dll 动态库,编译成功后自动将其复制到你的输出目录(如包含 .exe 或 .arx 的文件夹),防止运行时报错。 |
|
| Use built-in app-local… (使用内置本地部署) |
否 | 机制微调:指定使用 vcpkg 专属的高效 MSBuild 脚本去执行动态库复制(推荐设为“否”),还是使用 VS 默认的通用部署机制。 | |
| Installed Directory (已安装目录) |
留空 | 存储重定向:自定义本地编译成果的存放路径。默认留空即可,系统会自动在项目根目录下生成 vcpkg_installed 文件夹。 |
|
| Additional Options (附加选项) |
留空 | 高级调教:向后台的 vcpkg install 命令行传递额外的自定义实验性参数。 |
|
| Target & Configuration (目标与配置) |
Use Static Libraries (使用静态库) |
是 | 形态决定:控制 vcpkg 为你编译/提供哪种库。“是”代表提供 .lib 静态库(代码直接吞进你的二进制中);“否”代表提供动态库。 |
| Use Dynamic CRT (使用动态 C 运行时库) |
是 | CRT 握手:控制第三方库链接微软 C 运行时的模式。“是”对应编译器中的 MD/MDd 选项(你的环境当前状态);“否”对应 MT/MTd。 | |
| Triplet (三元组类型) |
x64-windows-static-md |
物理灵魂:明确定义你的目标平台架构特征。由上述的“架构(x64) + 静态库(static) + 动态运行时(md)”组合由 VS 自动推导填充。 | |
| Host Triplet (主机三元组类型) |
留空 | 交叉编译配置:运行编译任务的宿主机架构。默认留空即可,会自动采用你当前 Windows 系统的 64 位环境。 | |
| Vcpkg Configuration (Vcpkg 配置) |
<不同选项> |
环境映射:自动将项目的 Debug/Release 构建配置映射到 vcpkg 对应的调试版和发行版第三方库上。 |
在项目下创建 vcpkg.json 文件。
name 指定项目名称,不允许大写字母,允许小写、数字、连字符,开头和结尾不允许是连字符。
version-string 指定项目版本。
builtin-baseline 指定 vcpkg 提交的哈希值(相当于版本号),vcpkg 项目开源地址:https://github.com/microsoft/vcpkg ,我这里使用的当前最新一次 Release 发布时的 Commit 哈希值。

后面就是指定要通过 vcpkg 安装的依赖包和强制版本,可以搜索包名和看到历史版本:https://vcpkg.io/en/packages
{
"name": "iyatt-yx-cad-tools",
"version-string": "1.0.0",
"builtin-baseline": "56bb2411609227288b70117ead2c47585ba07713",
"dependencies": [
"gettext"
],
"overrides": [
{
"name": "gettext",
"version": "0.22.5"
}
]
}
代理
vcpkg 下载的来源站遍布全世界,很多库来源于国外,大陆下载可能非常慢,一般要设置代理。
我这里使用是对 VS 设置代理,这样通过 VS 运行的 vcpkg 也能使用代理。
新建一个文本文件写入
http://127.0.0.1:10808 这里替换成自己的代理,这里我是本地的 v2rayN 开的代理。
C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\devenv.exe 是 VS 的启动文件路径,可以通过快捷方式的属性获取

@echo off
set HTTP_PROXY=http://127.0.0.1:10808
set HTTPS_PROXY=http://127.0.0.1:10808
start "" "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\devenv.exe"
保存文件后,将扩展名改为 .bat,这样双击就会自动设置代理并启动 VS。

测试
如果不是通过 VS 内添加的 vcpkg.json 文件,VS 可能没识别到,可以在项目名上右键添加现有项。

在项目名上右键生成或重新生成,在编译的同时会触发 vcpkg 安装依赖。


首次安装时间久一点,如果编译也没出错,就显示生成成功了。

