QT: undefined reference to'vtable for...



  • Hallo Community,

    Ich wollte heute mal anfangen mich in QT reinzuarbeiten. Alles runtergeladen, Code::Blocks gestartet, neues Projekt, Verzeichnis von QT angegeben.
    Nun habe ich mit einem tutorial gearbeitet. Alles funktionierte super, bis das Projekt auf mehrere Dateien aufgeteilt werden sollte. Jetzt bekomme ich nämlich diese Fehlermeldung: "undefined reference to'vtable for...".
    Ich habe mich schon umgeschaut und vieles gelesen und die Antwort lautete, dass ich qmake ohne Parameter manuell starten soll. Allerdings habe ich mich noch nie um Makefiles gekümmert und bin damit überfordert.

    Es wäre echt toll, wenn mir jemand helfen könnte.

    Mit freundlichen Grüßen

    Mr Crown



  • Bei so einer Fehlermeldung ist oft vergessen worden, eine virtuelle Methode zu implementieren.
    Schau mal ob mit deinen Methoden alles stimmt.



  • diese Fehlermeldung kommt in Verbindung mit Qt oft dann, wenn man qmake ausgeführt hat, und danach einer Klasse das Q_OBJECT -Makro hintzufügt, ohne qmake erneut auszuführen

    mit Makefiles brauchst du dich nicht auszukennen, das macht qmake für dich...

    du brauchst erstmal eine *.pro-Datei mit in etwa diesem Inhalt:

    HEADERS += myclass.h
    
    SOURCES += main.cpp \
               myclass.cpp
    

    Für weitere Befehle kannst du ja die entsprechende Seite im assistant aufrufen... da ist eine komplette Funktionsreferenz zu qmake

    bei kleinen Projekten kannst du die Datei auch automatisch mit qmake -project , ausgeführt in deinem Projektverzeichnis, erstellen lassen.

    Danach qmake ausführen (ohne Parameter) und dir wird brav dein Makefile erstellt... mit allem pipapo



  • Für QT bitte den QT-Creator verwenden, erhältlich mit der aktuellen 4.5 SDK.
    Damit fällt das ganze einrichten etc alles weg und der Editor ist auch integriert.
    MfG



  • Danke erstmal. Allerdings steige ich da noch nicht ganz durch. Ich habe nämlich keine Ahnung, wie ich diese *.pro-Datei zu meinem Project hinzufüge. Ich habe vorher nur stur meinen C++ Code kompiliert und noch nie was von einem Makefile gehört 😃



  • Die .pro braucht nicht in dein Projekt. QT arbeitet mit einer Art eigenen Präprozessor, der das eigentlich Makefile und einiges an Code mit dem du sonst nix zu tun hast, generiert. Du braucht nur die .pro Datei anlegen mit dem Code wie oben gepostet und dann qmake auszuführen auf diese Datei, danch mingw32-make oder halt make, je nach OS.

    Aber deswegen schrieb ich auch, du sollst den QT-Creator verwenden, weil das da alles erstmal wegfällt und die IDE ist echt einfach zu verwenden. Noch dazu ist Version 4.5 unter LGPL, du hast also lizenzrechtlich weniger zu beachten.
    MfG



  • Gut. Vielen Dank. Habe das jetzt verstanden.
    Ich denke ich werde tatsächlich vorerst den QT Creator verwenden, da ich mir die Mühe mit den Makefiles für jedes Projekt dann ja sparen kann.

    Mit freundlichen Grüßen

    Mr Crown


Anmelden zum Antworten