在项目开始时未定义QT COMPILER_MACROS

时间:2020-04-12 11:40:22

标签: c++ qt visual-c++ mingw

我的QT(版本5.12.1)有一个令人讨厌的问题,我怀疑这是因为我的计算机上同时有几个不同版本的Visual Studio。请注意,我正在使用Windows 10并使用QT创建器。问题如下:

当我创建一个新的空控制台项目时,我在IDE中收到以下常规消息:

运行Windows运行时设备检测。找不到winrtrunner.exe。 C:/Qt/Qt5.12.1/5.12.1/mingw73_64/mkspecs/features/toolchain.prf(76): 未定义变量QMAKE_CXX.COMPILER_MACROS。项目错误: 无法解析来自编译器输出错误的默认搜索路径,而 解析文件C:\ Qt \ Test \ Proj \ Proj.pro。放弃。

在创建控制台项目时,默认情况下,QT将添加main.cpp。但是,我无法添加任何新的源代码文件(这些选项显示为灰色),并且实际上无法访问main.cpp。

但是,如果我(通过IDE)构建项目,它将创建一个.o和.exe文件,这是没有意义的,因为我无法在源代码中添加任何内容。然后,我关闭QT,将其打开,所有操作均应正常进行。

我正在使用MinGW,但是QT仍然可以自动检测MSVC编译器和调试器。这不会造成任何问题,因为默认的构建工具包会指定所有MinGW东西。

任何想法可能是什么原因?我所做的所有在线搜索均指向针对QT5.9记录并修复的错误,但没有针对我的问题的明确解决方案。

1 个答案:

答案 0 :(得分:1)

我们在Windows 10上构建时遇到了同样的问题,我想我找到了解决方案。我们的项目正在同时使用Visual Studio 2019(使用MSVC编译器)和Qt 5.12.7(使用MinGW 64位编译器)来编译Qt项目。

我们的重构很大,所以我删除了构建目录和* pro.user文件。然后我的Qt项目也发生了同样的事情。我还创建了一个默认项目,关闭了Qt,当我重新启动它时,无法解析* .pro文件,并带有与您看到的相同的错误。经过一番调查,我恢复了从回收站中删除的.qmake.stash文件,并且该构建再次开始工作。

我得出的结论是Qt取决于qmake的运行(应该修复此错误:https://bugreports.qt.io/browse/QTBUG-60059,但我决定专注于qmake)。经过一堆反复试验(没有很好地解释为什么会起作用),我找到了解决方案。

我使该程序运行了几次。

  • 删除所有构建工件和* pro.user文件
  • 打开项目并将其配置为 MinGW 64bit。
  • 获取错误
  • 构建->运行qmake(您可以观看Compile输出以查看其正常运行)
  • 单击“文件”->“关闭项目”
  • 单击“文件”->“最近的项目”,然后选择要重新打开的项目。
  • 现在已解决!
  • 安全并进行构建。

此外,只要在关闭QtCreator时不吹走所有构建构件,打开项目似乎都能找到。您可以在QtCreator打开时吹走所有工件,然后在关闭之前进行重建,一切正常。