Seite 1 von 1

QThread-Klasse

Verfasst: 20. Juni 2011 15:37
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

Verfasst: 20. Juni 2011 16:08
von RHBaum
Die vom Moccer erzeugten dateien werden schon mit zugelinkt ?

Verfasst: 20. Juni 2011 16:10
von Marco26
Hallo,

da bin ich mir gar nicht sicher. Wie macht man die dem Linker bekannt?

Verfasst: 20. Juni 2011 16:19
von archer
Sind die Dateien der pro-Datei hinzugefügt worden?

Verfasst: 20. Juni 2011 16:24
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.

Verfasst: 20. Juni 2011 16:25
von Marco26
Achso als kleine Ergänzung, ich arbeite mit VS2010

Verfasst: 20. Juni 2011 16:34
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