我在構建應用程序時收到以下鏈接器錯誤。Q_OBJECT鏈接器錯誤!
HIMyClass.obj:: error: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CHIMyClass::metaObject(void)const " ([email protected]@@[email protected]@XZ) File not found : HIMyClass.obj
HIMyClass.obj:: error: unresolved external symbol "public: virtual void * __thiscall CHIMyClass::qt_metacast(char const *)" ([email protected]@@[email protected]) File not found : HIMyClass.obj
HIMyClass.obj:: error: unresolved external symbol "public: virtual int __thiscall CHIMyClass::qt_metacall(enum QMetaObject::Call,int,void * *)" ([email protected]@@[email protected]@@[email protected]) File not found : HIMyClass.obj
我的類的聲明就像
class CHIMyClass:public QDialog
{
Q_OBJECT
....
};
當我評論Q_OBJECT鏈接錯誤熄滅(,顯然我不能夠使用信號和槽)。我使用Qt Creator作爲IDE和Qt 4.5.3。當我給重建全部確定QMake將被調用。我想,它的moc_ *文件的代是問題所在。我使用Windows XP和CL作爲編譯器。
鏈接器錯誤背後的原因是什麼?
也許'找不到文件:HIMyClass.obj'告訴我們,Qt Creator沒有看到moc/obj/temp文件? – mosg 2010-07-16 11:39:47
真的,重新運行qmake。另外,請檢查.pro文件中是否缺少或多餘的「\」字符。 – andref 2010-07-16 17:22:13