我寫了一個簡單的測試如下:Q_OBJECT在QT(未定義引用的vtable XXX)
#include <QCoreApplication>
#include <QObject>
class Foo : public QObject
{
Q_OBJECT
};
class foo1
{
};
int main(int argc, char* argv[])
{
QCoreApplication a(argc, argv);
Foo f;
return a.exec();
}
這給了我一個錯誤:
error: undefined reference to `vtable for Foo':
但是,當我改變Foo f
到Foo f()
,它遵守沒有任何錯誤。
所以我的問題是什麼f
和f()
之間的不同?
我已經嘗試清理項目並再次運行qmake,但錯誤仍然出現,當我使用Foo f – himlen