Ich erhalte den folgenden Linkfehler, wenn ich meine Anwendung erstelle.Q_OBJECT Linkfehler!
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
Meine Klassendeklaration ist wie
class CHIMyClass:public QDialog
{
Q_OBJECT
....
};
Wenn ich Q_OBJECT Kommentar der Linker Fehler losgeht (und offensichtlich bin ich nicht in der Lage Signale und Slots verwenden). Ich verwende Qt Creator als IDE und Qt 4.5.3. Wenn ich gebe Rebuild All ist es sicher, dass QMake wird aufgerufen werden. Ich schätze, dass es bei der Generierung von moc_ * -Dateien genau dort liegt, wo das Problem liegt. Ich benutze Windows XP und cl als Compiler.
Was könnte der Grund für diesen Linker Fehler sein?
Vielleicht 'Datei nicht gefunden: HIMyClass.obj' sagen uns, dass Qt Creator Moc/Obj/Temp-Dateien nicht gesehen? – mosg
Wirklich, wiederholen Sie qmake. Suchen Sie auch nach fehlenden oder zusätzlichen "\" Zeichen in Ihrer .pro-Datei. – andref