【问题标题】:Qt moc error 1 - what does it mean?Qt moc 错误 1 ​​- 这是什么意思?
【发布时间】:2010-08-25 18:46:48
【问题描述】:

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

[moc_droparea.cpp] 错误 1

droparea.cpp (显然)是项目中的一个文件。我检查它是否存在于项目目录中并且没有损坏。出现此错误后,文件moc_droparea.cpp 未显示在构建文件夹中,因此我假设无论出于何种原因它都无法构建,但该错误太模糊,无法帮助我弄清楚发生了什么。谁能帮我弄清楚这是什么意思?

【问题讨论】:

  • 您介意发布在被移动时出现错误的 droparea.h 文件吗?
  • 不幸的是,我实际上无法发布任何源代码,该项目正在工作。但是,.h 文件与 QT creator 附带的 Drop Area 示例中的文件几乎相同。
  • 附加说明:尝试将 Q_OBJECT 与模板类一起使用时也会发生此错误。如何在模板类中使用信号/槽功能描述于:stackoverflow.com/questions/4397478/qt-templated-q-object-class

标签: qt qt-creator


【解决方案1】:

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

在我的例子中,红线是说:你不能在私有槽中定义一个整数值。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我以前遇到过这个问题。你能接受你自己的答案吗?这会将其从未答复列表中删除。
    【解决方案3】:

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

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

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

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

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

    【讨论】:

    【解决方案4】:

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

    所以也要检查你的资源路径。

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        就像 J.Javan 已经指出的那样,检查编译器输出可能会有所帮助。就我而言,我发现:

        ../stateMaschine/usermenu.h:57:错误:缺少类声明 Q_OBJECT 宏。 make: *** [Makefile:215: moc_usermenu.cpp] 错误 1

        因此,这有助于我在使用信号和插槽时通过更正类声明来修复错误:

        class Menu : public QObject{
            Q_OBJECT
            ...
        

        【讨论】:

          【解决方案7】:

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

          也许“[源文件名]错误1”消息通常意味着由于文件路径中的意外字符而无法找到文件。

          【讨论】:

          • 我认为这应该是评论而不是答案
          • 对。但我不被允许发表评论(分数太低)。但是,再次,this 是一个评论。我欢迎我的升级。
          【解决方案8】:

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

          【讨论】:

            猜你喜欢
            • 2019-04-24
            • 1970-01-01
            • 2015-06-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多