Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt:对'的未定义引用;vtable for MyClass';_C++_Qt - Fatal编程技术网

C++ Qt:对'的未定义引用;vtable for MyClass';

C++ Qt:对'的未定义引用;vtable for MyClass';,c++,qt,C++,Qt,我正在为我的项目使用Qt Creator。当我试图逐字运行下面的代码时,我得到一个编译器错误未定义对“vtable for MyClass”的引用。。我环顾四周,显然这是编译器的说法,表示缺少虚拟函数的实现 在myclass.h中: class MyClass : public QObject { Q_OBJECT public: MyClass(QTimer* timer) {} virtual ~MyClass() {} }; 在main.cc中: int main(int

我正在为我的项目使用Qt Creator。当我试图逐字运行下面的代码时,我得到一个编译器错误
未定义对“vtable for MyClass”的引用。
。我环顾四周,显然这是编译器的说法,表示缺少虚拟函数的实现

在myclass.h中:

class MyClass : public QObject {
  Q_OBJECT

 public:
  MyClass(QTimer* timer) {}
  virtual ~MyClass() {}
};
在main.cc中:

int main(int argc, char* argv[]) {
  QApplication app(argc, argv);
  QTimer timer;
  MyClass myclass(&timer);
  return app.exec();
}

我不知道我做错了什么。

您需要运行qmake。仅单击“构建”将不会再次运行qmake

qmake运行moc,它根据您的.ui文件生成.cpp和.h。这些文件没有与项目的其余部分正确对齐,因为它们没有更新。最好记住,如果您曾经更改过ui,请记住运行qmake

有关vtable及其功能的更多详细信息,请参见:

从“生成”菜单->全部清除,运行qmake,全部重建