[gelöst] Probleme mit Q_OBJECT
Verfasst: 7. September 2009 12:01
Hallo,
bei folgendem Code:
bekomme ich folgende Fehlermeldung:
Ich verwende Kdevelop. Ein einbinden der moc - Dateien war bislang nicht erforderlich.
Diese erscheint nicht mehr wenn ich Q_OBJECT einfach auskommentiere.
Aber dann dürfte das "signal-slot" Verfahren nicht mehr funktionieren.
Wie kommt es zu dieser Fehlermeldung ?
bei folgendem Code:
Code: Alles auswählen
#include <iostream>
#include <QtCore>
#include <QCoreApplication>
#include <QtNetwork>
#include <QtSql>
#include <QtXml>
class Tlog_tester;
class Tlog_tester:public QObject
{
Q_OBJECT
private:
protected:
public:
Tlog_tester();
~Tlog_tester();
void start(Terror_log*);
//signals:
//void log_error( Terror_msg );
};
Tlog_tester::Tlog_tester()
{
}
Tlog_tester::~Tlog_tester()
{
}
void Tlog_tester::start(Terror_log* error_log_ptr)
{
Terror_msg error_msg;
error_msg.nr = 2000;
error_msg.type = debug;
error_msg.occured_in = "Tlog_tester";//this->objectName();
error_msg.arguments.append("mit einem Parameter\n");
/*
connect(this,SIGNAL(log_error(Terror_message)),error_log_ptr,SLOT(reveive_error_to_log(Terror_msg)));
emit log_error(error_msg);
this->disconnect();*/
}
bekomme ich folgende Fehlermeldung:
Code: Alles auswählen
/home/david/C++/QT-Projekts/Tlog_test/src/main.cpp:691: undefined reference to `vtable for Tlog_tester'
/home/david/C++/QT-Projekts/Tlog_test/src/main.cpp:691: undefined reference to `vtable for Tlog_tester'
/home/david/C++/QT-Projekts/Tlog_test/src/main.cpp:691: undefined reference to `vtable for Tlog_tester'
debug/main.o: In function `Tlog_tester':
/home/david/C++/QT-Projekts/Tlog_test/src/main.cpp:687: undefined reference to `vtable for Tlog_tester'
/home/david/C++/QT-Projekts/Tlog_test/src/main.cpp:687: undefined reference to `vtable for Tlog_tester'
collect2: ld returned 1 exit status
make[1]: *** [Tlog_test] Fehler 1
make[1]: Leaving directory `/home/david/C++/QT-Projekts/Tlog_test'
make: *** [debug] Fehler 2
Diese erscheint nicht mehr wenn ich Q_OBJECT einfach auskommentiere.
Aber dann dürfte das "signal-slot" Verfahren nicht mehr funktionieren.
Wie kommt es zu dieser Fehlermeldung ?