c++ - QT COMPILER_MACROS 未在项目开始时定义

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

我在使用 QT(5.12.1 版)时遇到了一个恼人的问题,我怀疑这是因为我的机器上同时还激活了几个不同版本的 Visual Studio。请注意,我使用的是 Windows 10 并使用 QT Creator。问题如下:

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

Running Windows Runtime device detection. No winrtrunner.exe found. C:/Qt/Qt5.12.1/5.12.1/mingw73_64/mkspecs/features/toolchain.prf(76): Variable QMAKE_CXX.COMPILER_MACROS is not defined. Project ERROR: failed to parse default search paths from compiler output Error while parsing file C:\Qt\Test\Proj\Proj.pro. Giving up.

在制作控制台工程时,QT会默认添加main.cpp。但是我不能添加任何新的源代码文件(那些选项是灰色的)而且我实际上不能访问 main.cpp。

但如果我构建项目(通过 IDE),它将生成 .o 和 .exe 文件,这些文件毫无意义,因为我无法向源代码添加任何内容。然后,我关闭 QT,再打开它,一切正常。

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

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

最佳答案

我们在 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 64 位配置它。
  • 得到错误
  • 构建->运行 qmake(您可以观察编译输出以查看它是否正常运行)
  • 点击"file"->关闭项目
  • 点击"file"->最近的项目并选择要再次打开的项目。
  • 现在修好了!
  • 注意安全并进行构建。

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

关于c++ - QT COMPILER_MACROS 未在项目开始时定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61170838/

相关文章:

c++ - Qt ComboBox + 搜索 XML + 将数据从 XML 打印到 GUI

c++ - 为什么 MSVC 在寄存器中返回一个小结构时不必要地使用堆栈?

c++ - 我如何能够在 1 字节的普通字符串中存储日文字符?

c++ - 循环中的运行时 vector 错误

c++ - 全局空间定义的类的构造函数代码什么时候运行?

c++ - 使用数组的对象的编译时多态性是否可能?

c++ - 为什么这在分成 2 行时不起作用?

C++:数组的 Setter 和 Getter

qt - Apple Retina Display 上的 QGraphicsItem 渲染

c++ - 来自 Boost : cannot find the libraries to link with 的链接器错误