首页 文章

在Qt中,我的类使用“vtable for GameControlCenter”继承QObject错误,引自:

提问于
浏览
0

总错误消息是:

体系结构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 回答

  • 2
    • 确保Q_OBJECT宏存在于所有QObject派生类的定义中 .

    • 确保仅在头文件中声明QObject派生类 .

    • 确保所有头文件都列在HEADERS =列表中的.pro文件中 .

    • 每次将Q_OBJECT添加到其中一个类或修改.pro文件时运行qmake

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

相关问题