一般我们继承QObject类在头文件中添加,但是有时候需要在源文件中添加。这样就会不可避免地出现编译错误。那么我们该究竟怎么解决它呢?
error: undefined reference to `vtable for Object'
错误: 未定义引用'Object'的虚函数表
/* main.cpp */
#include <QCoreApplication>
class Object : public QObject {
Q_OBJECT
public:
Object() { }
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Object object;
return a.exec();
}
函数未定义的错误
。#include 当前文件.moc
就可以了。当前文件.moc
到其类定义下或最后一行(注意:不能Object类先于定义);/* main.cpp */
#include <QCoreApplication>
class Object : public QObject {
Q_OBJECT
public:
Object() { }
};
#include "main.moc"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Object object;
return a.exec();
}