概括
- VCPKG_ROOT:指定 vcpkg 根目录,CMake 调用脚本时会读取它。
- PATH:将 vcpkg 可执行文件目录加入 PATH,以便任意位置可调用
vcpkg
。 - VCPKG_DEFAULT_TRIPLET:设定默认构建三元组(如 x64-windows、x64-linux)。
- VCPKG_FEATURE_FLAGS:开启 vcpkg 的“off-by-default”功能集合。
- VCPKG_KEEP_ENV_VARS / VCPKG_ENV_PASSTHROUGH:控制哪些环境变量传递给包构建,以及哪些变化会触发重建。
- VCPKG_VISUAL_STUDIO_PATH:手动指定 VS 安装路径,覆盖自动检测。
常用环境变量详解
VCPKG_ROOT
- 功能:告诉 vcpkg 在哪个目录下查找自身脚本和工具链文件,等同于命令行参数
--vcpkg-root
的效果。仅当执行文件不在此目录或未用开关指定时生效。 - CMake 中用法:
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") endif()
VCPKG_DEFAULT_TRIPLET
- 功能:指定默认架构和运行时组合,如
x64-windows
、x86-linux
。 - 作用:执行
vcpkg install xxx
时,无需每次添加:x64-windows
后缀即可安装对应架构包。
VCPKG_FEATURE_FLAGS
- 功能:开启 vcpkg 中尚未默认启用的实验性或预览功能,逗号分隔。
- 注意:这些功能可能随时变更,不保证稳定。
VCPKG_KEEP_ENV_VARS 与 VCPKG_ENV_PASSTHROUGH
- VCPKG_KEEP_ENV_VARS:列出不会被记录到 ABI、也不会因变化触发重建的环境变量(
;
分隔)。 - VCPKG_ENV_PASSTHROUGH:列出会被跟踪并在变化时触发重建的环境变量(
,
分隔)。 - 场景:当依赖外部 SDK 路径或自定义编译选项时,用此变量传递给构建系统。
VCPKG_VISUAL_STUDIO_PATH
- 功能:显式指定 Visual Studio 安装路径,避免 vcpkg 自动扫描到不想用的版本。
- 示例:
set VCPKG_VISUAL_STUDIO_PATH=D:\Program Files\Microsoft Visual Studio22\Community
不同平台的配置方法
Windows
- 临时设置(仅当前终端有效)
set VCPKG_ROOT=C:\path\to\vcpkg set PATH=%VCPKG_ROOT%;%PATH% set VCPKG_DEFAULT_TRIPLET=x64-windows
- 永久设置(所有终端有效)
- 右键“此电脑”→“属性”→“高级系统设置”→“环境变量”。
- 在“系统变量”下:
- 新建
VCPKG_ROOT
,值填 vcpkg 根目录(如C:\vcpkg
)。 - 选中
Path
→编辑→新增%VCPKG_ROOT%
。 - 如需默认三元组,则新建
VCPKG_DEFAULT_TRIPLET
,值x64-windows
。
- 新建
- 重启终端或 IDE 生效。
Linux / macOS
- 临时设置(当前 shell 会话)
export VCPKG_ROOT=/home/user/vcpkg export PATH=$VCPKG_ROOT:$PATH export VCPKG_DEFAULT_TRIPLET=x64-linux
- 永久设置(所有会话)
- 在
~/.bashrc
、~/.zshrc
或对应 shell 配置文件中添加上述export
行。 - 保存并执行
source ~/.bashrc
(或重启终端)以应用。
- 在
验证环境变量是否生效
- 打开新终端(或 PowerShell/CMD)。
- 执行
vcpkg version echo $VCPKG_ROOT # Linux/macOS echo %VCPKG_ROOT% # Windows
- 若能正确显示版本号及根目录,即配置成功。
通过上述配置,你即可在任意路径下调用 vcpkg
,并在 CMake 或 IDE 中无缝集成 vcpkg 管理的库。