QThread-Klasse

Alles rund um die Programmierung mit Qt
Antworten
Marco26
Beiträge: 14
Registriert: 8. Januar 2009 16:09

QThread-Klasse

Beitrag von Marco26 »

Hallo liebe Forengemeinde,

ich habe folgendes Problem.

Ich habe mir eine kleine Test-Klasse gebaut mit der ich von QThread ableite.
Wie gewöhnlich ist die Klasse im Header definiert und im cpp-File implementiert.
->jetzt kommts, wenn ich den Konstrukter und Destrukter inline also im Header-File implementiere gehts problemlos. Sobald ich aber im cpp-File implementiere bringt mir der Linker Fehler. Das cpp-File wird aber erkannt, weil sich die Funktion "run" auch im cpp-File implementieren lässt.

Header-File:

#ifndef TEST_H
#define TEST_H

#include <QThread>

class CTest: public QThread
{
Q_OBJECT

public:

CTest(QObject* parent = NULL);
~CTest();

void run();

};

#endif

cpp-File:

#include "Test.h"

CTest::CTest(QObject* parent): QThread(parent)
{

}

CTest::~CTest()
{

}

void CTest::run()
{

}

Fehlermeldung:

1>Test.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CTest::metaObject(void)const " (?metaObject@CTest@@UBEPBUQMetaObject@@XZ)
1>Test.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall CTest::qt_metacast(char const *)" (?qt_metacast@CTest@@UAEPAXPBD@Z)
1>Test.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall CTest::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@CTest@@UAEHW4Call@QMetaObject@@HPAPAX@Z)

Wo könnte der Fehler liegen? Ich bin langsam am verzweifeln

LG Marco
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Die vom Moccer erzeugten dateien werden schon mit zugelinkt ?
Marco26
Beiträge: 14
Registriert: 8. Januar 2009 16:09

Beitrag von Marco26 »

Hallo,

da bin ich mir gar nicht sicher. Wie macht man die dem Linker bekannt?
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Sind die Dateien der pro-Datei hinzugefügt worden?
Marco26
Beiträge: 14
Registriert: 8. Januar 2009 16:09

Beitrag von Marco26 »

Nein der Pro-Datei nicht. Ist das zwingend erforderlich? ich verfahre immer so, dass ich für jede neue KLasse, im Header das Custom-Build-Tool einrichte. Bisher klappte das immer so, ich hatte allerdings noch nie mit der Qthread-Klasse zu tun.
Marco26
Beiträge: 14
Registriert: 8. Januar 2009 16:09

Beitrag von Marco26 »

Achso als kleine Ergänzung, ich arbeite mit VS2010
Marco26
Beiträge: 14
Registriert: 8. Januar 2009 16:09

Beitrag von Marco26 »

Ach ich habe es,

ich habe vergessen das erzeugte moc-File dem Filter "generated files" zu zufügen. So was blödes :D :D

Danke für die Hilfe-> kann nun geschlossen werden

LG
Antworten