error: [Makefile:1689: moc_ * .cpp] Error 1 解决方法

简介: Qt编译项目时候出现 的错误error信息

error: [Makefile:1689: moc_ * .cpp] Error 1

文章目录

    • 本博文的简述or解决问题?
    • 同步博文:
    • 产生原因:
    • 解决方法:
    • 总结:
    • 开心分享:

本博文的简述or解决问题?

详情: 见简介


编程环境: win10 x64 专业版 1803

编程软件: visual studio 2015Qt Creator 4.8.2 (Enterprise)Qt 5.9.8


同步博文:

  • 本篇的csdn/github.io同步博文: error [Makefile1689 moc_ xxxx .cpp] 解决方法

产生原因:

创建一个新的类,需要使用信号于槽机制,添加Q_OBJECT宏:

DMessageManager.h

#ifndef DMESSAGEMANAGER_H
#define DMESSAGEMANAGER_H

#include 

class DMessageManager
{
    Q_OBJECT
public:
    DMessageManager();
};

#endif // DMESSAGEMANAGER_H

DMessageManager.cpp

#include "dmessagemanager.h"

DMessageManager::DMessageManager()
{
}

解决方法:

这可能是因为其他人提到的其他事情很少。我想补充另一个在这里丢失的。

如果您创建一个类并向其添加Q_OBJECT但不从QObject继承,您将获得“moc error 1"”。

如果你看一下编译输出,就会有一行说:
Error: Class contains Q_OBJECT macro but does not inherit from QObject

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

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


总结:

除了查看问题警告,还可查看编译输出,查看第一个标红的地方(或许会有惊喜);

中文难以查询到满意的答案, 试试stack overflow这个网站;


开心分享:

因为有着许许多多的热心网友的无私分享,从他们的博客中学习成长,学会很多,故也不辞辛苦也将自己的项目或经验整理成博客的形式,也提供给一起大家学习探讨与交流

你可能感兴趣的:(Qt,C/C++)