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

问题描述 投票:9回答:7

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

[[moc_droparea.cpp]错误1

droparea.cpp(显然)是项目中的文件。我检查了它在项目目录中是否存在并且没有损坏。该错误发生后,文件moc_droparea.cpp不会显示在build文件夹中,因此我认为由于某种原因它都无法构建,但是该错误太含糊,无法帮助我确定发生了什么。谁能帮我弄清楚这意味着什么?

qt qt-creator
7个回答
8
投票

单击“编译输出”,向上滚动并单击红线。

在我的情况下,红线说:您不能在专用插槽中定义整数值。

在qt创建者窗口的“进度详细信息”部分中,有一个名为“编译输出”的按钮(按钮编号4)。错误在那里用红色字体说明。单击它并向上滚动。


5
投票

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

希望此解决方案可以帮助其他人。


2
投票

这可能是因为其他人提到的其他事情很少。我想添加另外一个在这里不见的。

如果创建一个类并向其中添加Q_OBJECT,但不从QObject继承,则会出现“ moc错误1”。

如果您查看Compile Output,则会显示一行:

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

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


1
投票

[这可能是因为我猜到了很多事情-我遇到过类似的情况,我忘记删除.qrc文件中不再存在的条目。


1
投票

您可以右键单击错误1,然后选择“查看输出”。就我而言,我的qrc文件中的文件名错误。


0
投票

由于资源文件(.qrc)引用了以句点开头的文件名,因此发生了相同的错误1。当我从文件名中删除句点时,编译再次起作用。有趣的是,该错误仅在使用Clang编译器的Mac OSX下发生。在使用gcc编译器的Windows上,文件名未引发错误。


0
投票

就我而言,我的SD卡空间不足,导致了这种错误。

© www.soinside.com 2019 - 2024. All rights reserved.