在Qt中,我的类使用" vtable为GameControlCenter"继承QObject错误,引自:

时间:2016-10-12 08:02:09

标签: c++ qt signals-slots

总错误信息是:

  

架构x86_64的未定义符号:

     

" vtable for GameControlCenter",引自:

     游戏中的GameControlCenter :: GameControlCenter()在gamecontrolcenter.o

中      

注意:缺少vtable通常意味着第一个非内联虚拟成员函数没有定义。

头是:

tcpdump

问题:

错误变为

  

GameControlCenter继承QObject并添加宏" Q_OBJECT"。

在此操作之前,这些代码可以正常运行。 但我需要在GameControlCenter头中添加插槽功能, 所以我需要继承QObject。

IDE

操作系统是OS X10.11.2。 Qt Creator

1 个答案:

答案 0 :(得分:2)

  • 确保Q_OBJECT宏存在于所有QObject派生类的定义中。
  • 确保仅在头文件中声明QObject派生类。
  • 确保所有头文件都列在HEADERS = list中的.pro文件中。
  • 每次将Q_OBJECT添加到其中一个类或修改.pro文件时运行qmake

在我的代码中,我重复调用此头文件。因此,如果您有相同的问题,请检查您的代码是否再次包含相同的文件。