Fehler undefined to vtable

Alles rund um die Programmierung mit Qt
Antworten
Gerdfried
Beiträge: 5
Registriert: 23. Februar 2009 11:00

Fehler undefined to vtable

Beitrag von Gerdfried »

Hallo Qt-User,
als älterer Quereinsteiger nutze ich Linux openSuse 11.2 und
Qt-Creator 1.3.
In einem UPro habe ich eine Klasse (myWidget von QWidget abgeleitet)
angelegt.
Der Versuch, eine SIGNAL-SLOT Verbindung (public slots:) aufzubauen,
quittiert der Compiler/Linker mit 'undefined reference to vtable for MyWidget.
Wenn ich Q_OBJECT versuche, kommen andere Fehlermeldungen.
Im Netz finde ich nur Tipps, mit denen ich nix anfangen kann.
Als Hilfe bitte nur kurz, was ich eingeben muß. Alles andere übersteigt meine
Fähigkeiten.
Dank im Voraus
MfG Gerd
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Für SIGNAL/SLOT ist Q_OBJECT in der Klassendefinition notwendig. Q_OBJECT deklariert (virtuelle) Funktionen, diese MÜSSEN implementiert werden, sonst gibts ebenfalls ne undefined reference, da keine Implementierung existiert. Die Implementierung generiert moc (eigenständiges Programm, kommt mit Qt, hast du also schon ;)). Um das bequem zu erledigen, musst du in dem .pro (qmake project file) in der Variable HEADERS den Header mit deiner Klassendefinition hinzufügen:

Code: Alles auswählen

HEADERS += myClass.h
Danach nochmal qmake ausführen (sollte eigentlich automatisch geschehen, aber man weiß nie, vor allem unter Windows :P), dann sollte es beim anschließenden make ohne Fehler klappen.
Antworten