添加Q_OBJECT宏会在QThread继承的类中给出“未解决的外部错误”

时间:2013-12-04 15:59:25

标签: c++ qt

我有QThread继承的类,当我添加一个Q_OBJECT宏时,它会给出未解决的外部错误。 (我已经包含了QObject和QThread)。

class TCustomThread: public QThread
{
    Q_OBJECT
public:
    explicit TCustomThread(QObject *parent=0);

public slots:
    void testSlot();
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

在这种情况下,只有当moc工具没有为此类创建元数据时,才会产生此错误。 这种情况可能发生在两种情况下:

  • 文件依赖项已损坏,因此您必须运行qmake和/或清理项目(make clean)。
  • 未指示moc工具生成这些数据,例如您在专业文件中缺少条目:HEADERS += tcustomthread.h

我假设您使用的是专业版文件,如果您使用的是其他版本管理器,则只需添加与此HEADERS += tcustomthread.h相对应的缺失条目。