QT undefined reference to "vtable for xxx" 的一种解决

undefined reference to "vtable for xxx"

  创建新的class时,可能会出现undefined reference to "vtable for xxx"这种错误提示,我为了多线程而创建了另一个类来使用的时候,就出现了这问题,说说我的解决步骤吧:

  1. 审视一下自己的语句有没有错误,我查书抄下的代码,除了名字(Network)不同以外,其他都是一致的。

network.h
#include
#include
class Network : public QThread
{
Q_OBJECT
public:
explicit Network(QObject *parent = 0);
};
network.cpp
#include "network.h"
Network::Network(QObject * parent) :
QThread(parent)
{}

  • 看一下.pro文件有没有包含所需的东西,它需要QT+=core,但是明显我已经有了。
QT undefined reference to
帮助->索引->搜索QThreat
  • 然后我突然发现一个问题,它这里写着继承QOject类,需要的时QThead头文件,那我包含QOject是不是把它覆盖了?
    然后我就把QOject删掉,然后就成功了!
QT undefined reference to
删除前,编译错误

QT undefined reference to
删除后,完美通过
  • 还遇到一种情况是,改了别的名字,比如开头大小写改了这样,那还是最好还是删了原来的,重新创建一个class,我试过,能成!

总结:看看是否有包含了父类而把子类覆盖掉的情况,删掉父类试试!


QT undefined reference to
我的QT版本

你可能感兴趣的:(QT undefined reference to "vtable for xxx" 的一种解决)