You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt Creator调用nmake时找不到objbase.h,MSVC2015编译Qt项目失败

解决Qt 5.15.2 MSVC2015 64bit编译时找不到objbase.h的问题

问题场景

在Windows 10系统使用Desktop Qt 5.15.2 MSVC2015 64bit套件构建项目时,nmake抛出编译错误:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\Ole2.h:37: error: C1083: Cannot open include file: 'objbase.h': No such file or directory
...
NMAKE:-1: error: U1077: ""C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\bin\HostX64\x64\cl.EXE"" : return code '0x2'
NMAKE:-1: error: U1077: ""C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\bin\HostX64\x64\nmake.exe"" : return code '0x2'

示例项目"addressbook"也出现相同错误,但VS2022指向Qt安装后可正常编译Qt Widget项目。项目开发数月,近一周才出现问题,已尝试重装Qt 5.15.2、搜索系统未找到objbase.h、通过Build Tools重装MSVC2015,均无效,怀疑公司Microsoft Intune误删Windows SDK文件。MinGW 64bit可编译示例项目,但项目依赖MSVC特定预处理指令,需解决MSVC编译问题。

解决方案

1. 重新安装对应版本的Windows SDK

objbase.h是Windows SDK的核心头文件,正常存放在C:\Program Files (x86)\Windows Kits\10\Include\<SDK版本>\shared\objbase.h,系统找不到说明该SDK组件缺失:

  • 打开Visual Studio Installer,选择"修改"已安装的VS2022或MSVC Build Tools
  • 切换到"单个组件",找到报错中对应的Windows SDK版本(如10.0.19041.0),勾选后点击"修改"完成重装
  • 若找不到该版本SDK,可安装最新兼容的Windows 10 SDK版本,后续在Qt Creator中指定新的SDK路径

2. 手动修正Qt Creator的工具链环境变量

确保Qt Creator的MSVC2015工具链包含完整的SDK路径:

  • 打开Qt Creator,进入工具 > 选项 > 构建和运行 > 工具链
  • 选中MSVC2015 64bit工具链,点击"编辑"
  • 在"环境"标签页,检查INCLUDE变量是否包含Windows SDK的三个核心目录:
    INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;...
    
  • 若路径缺失,手动添加对应目录后保存,重新构建项目

3. 隔离VS2022与MSVC2015的环境冲突

当前环境中VS2022的编译器被Qt调用,导致工具链不匹配:

  • 进入Qt Creator的工具 > 选项 > 构建和运行 > 编译器
  • 确认MSVC2015 64bit对应的编译器路径为C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe,而非VS2022的cl.exe路径
  • 同时检查LIB变量,确保指向MSVC2015的库目录(C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64等)

4. 规避Intune对系统目录的管控

若确认是Intune误删SDK文件,可尝试:

  • 从同版本Windows系统的机器上拷贝缺失的objbase.h及相关SDK头文件到对应目录
  • 将Windows SDK安装到非系统盘(如D盘),在Qt Creator中指定新的SDK路径,避开Intune对C盘的管控

内容的提问来源于stack exchange,提问作者LazyDaelaSaga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:20:33