总错误消息是:
体系结构x86_64的未定义符号:“用于GameControlCenter的vtable”,引用自:gamecontrolcenter.o中的GameControlCenter :: GameControlCenter()注意:缺少的vtable通常表示第一个非内联虚拟成员函数没有定义 .
头是:
#ifndef GAMECONTROLCENTER_H
#define GAMECONTROLCENTER_H
#include "gamewindows.h"
#include <QList>
#include <QPair>
#include <QObject>
class GameControlCenter:public QObject
{
Q_OBJECT
public:
GameControlCenter();
问题:
错误变为何时
GameControlCenter继承QObject并添加宏“Q_OBJECT” .
在此操作之前,这些代码可以正常运行 . 但是我需要在GameControlCenter头中添加插槽功能,所以我需要继承QObject .
IDE
操作系统是OS X10.11.2 . Qt Creator
1 回答
确保Q_OBJECT宏存在于所有QObject派生类的定义中 .
确保仅在头文件中声明QObject派生类 .
确保所有头文件都列在HEADERS =列表中的.pro文件中 .
每次将Q_OBJECT添加到其中一个类或修改.pro文件时运行qmake
在我的代码中,我重复调用此头文件 . 因此,如果您有相同的问题,请检查您的代码是否再次包含相同的文件 .