[gelöst] emit Funktion undefined reference

Alles rund um die Programmierung mit Qt
Antworten
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

[gelöst] emit Funktion undefined reference

Beitrag von 24dan »

Was mach ich falsch?
Ich habe mir ein SIGNAL in einer Klasse eingerichtet, beim Benutzen des Signals im Source Code der Klasse bekomme ich immer die Fehlermeldung:

undefined reference to vtable for ....

Hier mal der entscheidenen Header Teil:

Code: Alles auswählen

#ifndef AUSWERTUNG_H
#define AUSWERTUNG_H
class Auswertung : public QObject{

    Q_OBJECT

public:

      Auswertung();
      ~Auswertung();
      void test();

signals:
      void meldungsDienst(int type,
                          QString meldung);
};

#endif // AUSWERTUNG_H

Und hier das CPP File:

Code: Alles auswählen

#include <QtGui>
//#include <QtNetwork>

#include "auswertung.h"

Auswertung::Auswertung() : QObject()
{
}

Auswertung::~Auswertung()
{
}

void Auswertung::test(){
   emit meldungsDienst(0,"test");
}
Zuletzt geändert von 24dan am 12. April 2010 11:27, insgesamt 1-mal geändert.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Der Header ist nicht in HEADERS in der pro-Datei aufgeführt... Foren-Suche würde da helfen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

Meine Pro Datei enthält zumindestens diesen Eintrag:
  • HEADERS += mainwindow.h \
    auswertung.h \
:roll:
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wie ist der genaue Linker-Fehler?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

  • ./debug\auswertung.o:C:\Dokumente und Einstellungen\Video\Eigene Dateien\Adler/auswertung.cpp:28: undefined reference to `Auswertung::meldungsDienst(int, QString)'
    collect2: ld returned 1 exit status
    mingw32-make[1]: Leaving directory `C:/Dokumente und Einstellungen/Video/Eigene Dateien/Adler'
    mingw32-make: Leaving directory `C:/Dokumente und Einstellungen/Video/Eigene Dateien/Adler'
    mingw32-make[1]: *** [debug\Adler.exe] Error 1
    mingw32-make: *** [debug] Error 2
    Beendet mit Rückgabewert 2.
    Fehler beim Erstellen des Projekts Desktop
    Beim Ausführen des Build-Schritts ''
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

Ich habe das SIGNAL emit mal raus genommen:
Die Kompilierung scheitert schon am Macro Q_OBJECT :roll:

Unter debug/ ist meine moc_auswertung.cpp auch komplett leer?!?
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

qmake neu ausgeführt?
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

Danke ja...

Habe das Projekt neu erstellen lassen
bereinigt und auch qmake neu ausgeführt....

Q_OBJECT rein und das system crashed....
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wie immer super Fehlermeldung von Dir...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Q_OBJECT muss im Header stehen BEVOR du qmake myproject.pro ausführst. also nochmal qmake laufen lassen und gut ist. Aber vorher bitte nicht Q_OBJECT rausnehmen...

Und du bist dir im Klaren, dass du gerade private von QObject erbst?
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

Christian81 hat geschrieben:Wie immer super Fehlermeldung von Dir...
Q_OBJECT rein und das system crashed....
Die Fehlermeldung ist immer noch die gleiche wie oben.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

24dan hat geschrieben:Die Fehlermeldung ist immer noch die gleiche wie oben.
Schau auf den Post zwischen dem von Christian und deinem, da steht die Lösung...
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

franzf hat geschrieben:
24dan hat geschrieben:Die Fehlermeldung ist immer noch die gleiche wie oben.
Schau auf den Post zwischen dem von Christian und deinem, da steht die Lösung...
Hatte gestern nicht mehr die Zeit ... War genau die richtige Lösung.
Läuft jetzt.
The Q_OBJECT macro is expanded by the preprocessor to declare several member functions that are implemented by the moc; if you get compiler errors along the lines of "undefined reference to vtable for LcdNumber", you have probably forgotten to run the moc or to include the moc output in the link command.
:lol:
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Antworten