Visual Studio 2022 CMake项目环境变量缺失致编译失败求助
解决Visual Studio 2022 CMake项目缺失Windows SDK环境变量的配置位置
1. Visual Studio内置CMake的项目级配置文件
- 打开项目后,右键项目根目录选择「CMake Settings for [项目名]」,在弹出的配置界面中切换到「环境变量」选项卡,直接添加指向Windows SDK的
INCLUDE、LIB变量:INCLUDE示例:C:\Program Files (x86)\Windows Kits\10\Include\[你的SDK版本]\um;C:\Program Files (x86)\Windows Kits\10\Include\[你的SDK版本]\ucrtLIB示例:C:\Program Files (x86)\Windows Kits\10\Lib\[你的SDK版本]\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\[你的SDK版本]\ucrt\x64
保存后,CMake构建该项目时会优先使用这里的环境变量。
2. VS开发者命令提示符的专属配置
- 找到VS安装目录下的
Common7\Tools\VsDevCmd.bat,在文件末尾添加自定义环境变量设置:
替换成你实际安装的SDK版本号后,每次通过VS开发者命令提示符启动VS或执行CMake命令时,都会加载这些变量。set INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt;%INCLUDE% set LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\ucrt\x64;%LIB%
3. CMake全局用户配置文件
- 编辑用户目录下的
C:\Users\[你的用户名]\CMake\CMakeLists.txt,添加以下内容:
该配置对当前用户的所有CMake项目生效,且不会修改系统级环境变量。set(ENV{INCLUDE} "C:/Program Files (x86)/Windows Kits/10/Include/[你的SDK版本]/um;C:/Program Files (x86)/Windows Kits/10/Include/[你的SDK版本]/ucrt;$ENV{INCLUDE}") set(ENV{LIB} "C:/Program Files (x86)/Windows Kits/10/Lib/[你的SDK版本]/um/x64;C:/Program Files (x86)/Windows Kits/10/Lib/[你的SDK版本]/ucrt/x64;$ENV{LIB}")
额外排查建议
- 先通过VS安装器检查「单个组件」中的「Windows SDK」是否已正确安装对应版本,若未安装则补充安装;
- 也可在VS的「工具」->「选项」->「项目和解决方案」->「VC++目录」中手动添加SDK的包含目录和库目录,此设置为VS全局生效,仅作用于IDE内的项目。
内容的提问来源于stack exchange,提问作者BookSword
相关产品推荐
相关产品推荐

