【发布时间】:2016-10-12 08:02:08
【问题描述】:
总的错误信息是:
架构 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();
问题:
错误变成When
GameControlCenter 继承 QObject 并添加宏“Q_OBJECT”。
在此操作之前,这些代码可以正常运行。 但我需要在 GameControlCenter 头部添加插槽功能, 所以我需要继承QObject。
集成开发环境
操作系统是 OS X10.11.2。 Qt 创建者
【问题讨论】:
-
做一个干净的构建,包括再次运行 qmake。如果您混合了源内构建和影子构建,请确保您的源内构建也被清理(因为那里的文件可以“覆盖”影子构建目录中的文件)。
-
你在使用 Visual Studio 吗?
-
我已经清理并重建了项目,但它不能解决问题。
-
假设您正在处理 qmake:请参阅 this answer。假设您正在处理 CMake:打开 AUTOMOC。如果是另一个构建系统,请在问题中说明。
-
尝试手动 qmake,而不仅仅是重建
标签: c++ qt signals-slots