Qt moc错误1 - 这是什么意思?

Cou*_*ato 9 qt qt-creator

我正在尝试在Mac OSX上构建一个项目,它给了我一个神秘的错误:

[moc_droparea.cpp]错误1

droparea.cpp(显然)是项目中的一个文件.我检查它是否存在于项目目录中并且没有损坏.moc_droparea.cpp在此错误之后,文件没有显示在构建文件夹中,因此我假设它无法以任何原因构建,但错误太模糊,无法帮助我弄清楚发生了什么.任何人都可以帮我弄清楚这意味着什么吗?

小智 8

单击"编译输出",向上滚动并单击红线.

在我的情况下,红线说:你不能在私人插槽中定义一个整数值..

在qt creator窗口下的"progress details"部分,有一个名为"compile output"的按钮(按钮编号4).用红色字体解释错误.单击它并向上滚动.


Cou*_*ato 5

解决方案非常简单.我有一个文件夹结构,在文件路径中放置空格(非法字符).我把下划线而不是空格,它建立得很好.我认为moc预处理器可以处理文件名中的空格,但显然不是.我觉得很愚蠢,但至少问题现在已经解决了.

希望这个解决方案可以帮助其他人.


J.J*_*van 5

这可能是因为其他人提到的其他几件事。我想添加另一个这里缺少的。

如果您创建一个类并向其中添加 Q_OBJECT 但不从 QObject 继承,您将收到“moc 错误 1”。

如果你看一下编译输出,有一行说:

错误:类包含 Q_OBJECT 宏但不从 QObject 继承

因此,解决此问题的一般方法就是查看“编译输出”窗口。