当试图用MSVC2015 64bit for Windows 10构建我的Qt项目时,我得到这个错误:
C:Program Files (x86)Windows Kits10Include10.0.19041.0umOle2.h:37: error: C1083: Cannot open include file: 'objbase.h': No such file or directory
...
NMAKE:-1: error: U1077: '"C:Program FilesMicrosoft Visual Studio2022CommunityVCToolsMSVC14.33.31629binHostX64x64cl.EXE"' : return code '0x2'
NMAKE:-1: error: U1077: '"C:Program FilesMicrosoft Visual Studio2022CommunityVCToolsMSVC14.33.31629binHostX64x64nmake.exe"' : return code '0x2'
——当在构建过程中调用nmake时。同样的错误也会出现在项目示例"addressbook"中。
它似乎是某种工具链问题,但我可以在Microsoft Visual Studio 2022中编译Qt Widget项目,如果我指向VS我的Qt安装。
我不确定我需要从这里做什么,因为我已经尝试过重新安装Qt.我已经看到,把东西放在程序文件通常是一个坏主意,但这似乎不是这个特定情况下的问题。
它似乎是Windows SDK的一部分,如果谷歌引导我正确的话。但是,为了编译我的项目并成功运行它,我不必单独下载Windows SDK。(作为上下文,这个项目已经开发了几个月,而这个问题大约一周前才出现)。
我的QT安装:
- 套件:桌面Qt 5.15.2 MSVC2015 64bit
- 版本:Qt 5.15.2 MSVC2015 64bit 编译器:Microsoft Visual c++ Compiler 17.3.32811.315 (amd64)
在我尝试构建之前发生的事情:
- 我最近重新安装了Qt 5.15.2,以解决类似的文件丢失问题。 该公司最近遇到了微软Intune删除应用程序的问题。也许它也击中了Windows SDK。
尝试解决问题
- 重新安装Qt 5.15.2
- 预期:我的项目构建没有错误。结果:This error.
- 查找objbase.h文件系统
- Expected:正在查找文件。结果:我没有找到文件。
我是Qt的新手,所以我不想尝试任何更深奥的东西,以免我把事情弄得比以前更糟。
更新:MinGW 64位适用于示例Qt项目,但如果可能的话,我仍然想使用MSVC2015。它不适合我的项目,因为我在源代码中使用了一些MSVC特定的预处理器标志。
更新2:我试图重新下载MSVC 2015从Visual Studio的网站,使用他们的构建工具安装程序。安装成功后,我没有看到任何变化——仍然找不到"objbase.h"文件。应该在Windows工具包目录下的Include//嗯,我想。
看来,在我的情况下,由于Windows Defender删除随机文件的问题,objbase.h文件被删除了。我能够重新安装正在使用的Windows SDK版本,这为我解决了这个问题。
我明白了。我把解决方案贴在这里给其他人。
我的问题是,由于我不清楚的原因,如果我在修改屏幕中选中它的框,VS Studio构建工具实际上不会删除有问题的SDK。您可以通过检查屏幕右下方即将安装的磁盘大小差异来判断是否发生了这种情况——如果它不会删除SDK,那么该大小将是+0字节(假设您没有选中或取消选中任何其他框)。
为了正确地重新安装SDK版本,我不得不去"添加或删除程序";在那里找到SDK,卸载它,重启我的电脑,只是为了安全,然后然后转到VS Build Tools并安装该SDK版本。我不得不做一个"假"。在我可以重新安装SDK之前,使用VS Build Tools卸载(基本上,取消现在删除的SDK并单击"修改",允许它执行安装和下载步骤)。