Seite 1 von 1

[Qt4 - Visualt Studio 2008 Express] MOC Einstellungen

Verfasst: 4. April 2009 19:27
von Matthias_
Hallo, seit einigen Tagen versuch ich meine ersten Schritte in Qt.
Nun hab ich folgendes Problem, wenn ich eine eigene Klasse von der "QMainWindow" ableiten möchte.


Ich bekomme da immer die LinkerFehler:
1>MyWindow.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __thiscall MyWindow::metaObject(void)const " (?metaObject@MyWindow@@UBEPBUQMetaObject@@XZ)".
1>MyWindow.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void * __thiscall MyWindow::qt_metacast(char const *)" (?qt_metacast@MyWindow@@UAEPAXPBD@Z)".
1>MyWindow.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual int __thiscall MyWindow::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z)".
So viel ich herausgefunden hab, liegt das an der fehlenden MOC Kompilierung.

Kann mir jemand erklären, wie ich diese genau durchführe, oder unter VS einstellen kann, dass dies dort automatisch geschieht ?

Danke schon mal im Vorraus.

Verfasst: 5. April 2009 02:01
von tomf
1. Header File rechts anklicken -> Properties -> Custom Build Step
2. Editiere -> Command Line: "$(QTDIR)/bin/moc.exe" "$(InputPath)" -o "MOC\moc_$(InputName).cpp"
3. Editiere -> Outputs: "MOC\moc_$(InputName).cpp"
4. Kompilieren
5. das erstellte moc_xyz.cpp File zu deinem Projekt hinzufügen (im MOC Ordner)
6. Kompilieren + Linken

Du kannst/musst die Pfade natürlich anpassen.

Verfasst: 5. April 2009 11:19
von Matthias_
Genial es funktioniert :D :D :D

Vielen Dank tomf !