LNK2001 und LNK2019

Alles rund um die Programmierung mit Qt
Antworten
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

LNK2001 und LNK2019

Beitrag von lespaul »

Hallo,

ich habe folgendes Linkerproblem:
3>Linking...
3> Creating library C:\Eigene Dateien\Uni\Oron\Debug\Oron.lib and object C:\Eigene Dateien\Uni\Oron\Debug\Oron.exp
3>OntariO.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const OntariO::staticMetaObject" (?staticMetaObject@OntariO@@2UQMetaObject@@B)
3>Ontar2.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const OntariO::staticMetaObject" (?staticMetaObject@OntariO@@2UQMetaObject@@B)
3>Ontar3_ModPOI.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const OntariO::staticMetaObject" (?staticMetaObject@OntariO@@2UQMetaObject@@B)
3>OntariO.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall OntariO::metaObject(void)const " (?metaObject@OntariO@@UBEPBUQMetaObject@@XZ)
3>OntariO.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall OntariO::qt_metacast(char const *)" (?qt_metacast@OntariO@@UAEPAXPBD@Z)
3>OntariO.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall OntariO::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@OntariO@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
3>OntariO.obj : error LNK2019: unresolved external symbol "protected: void __thiscall OntariO::signal_trigger(long,long)" (?signal_trigger@OntariO@@IAEXJJ@Z) referenced in function "public: virtual void __thiscall OntariO::HandleMessage(void * const)" (?HandleMessage@OntariO@@UAEXQAX@Z)
3>C:\Eigene Dateien\Uni\Oron\Debug\Oron.dll : fatal error LNK1120: 5 unresolved externals
Oron.cpp und Oron.h sind in der *.vcpro unter </Filter><Filter Name="Header Files" und Name="Source Files" eingetragen. Das Projekt wird als *.dll compiliert.
Ich habe ein SIGNAL in die bereits Funktionierende Klasse eingebaut. Dieses SIGNAL signal_trigger wird per emit gesendet und in einer anderen Klasse gebraucht.
Ontar2.cpp:

Code: Alles auswählen

connect( &refOntario, SIGNAL(signal_trigger(int, int)), this, SLOT( slot_On_Map_Click(int, int)) );
Q_OBJECT ist auch gesetzt. Kompilieren kann ich, jedoch nicht linken.

Sieht jemand mehr als ich?

LesPaul
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: LNK2001 und LNK2019

Beitrag von Christian81 »

Q_OBJECT im Header vergessen
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

Re: LNK2001 und LNK2019

Beitrag von lespaul »

Ja tatsächlich, super.

Nun bleibt nur noch mein LNK2019 problem..
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: LNK2001 und LNK2019

Beitrag von Christian81 »

Zu wenig Informationen - welches Buildsystem? Wenn Du weder qmake noch cmake benutzt dann solltest Du selbst die Doku zu moc lesen und die Benutzerdefinierten Buildsteps selbst eintragen.
Also nimm qmake oder cmake.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
lespaul
Beiträge: 87
Registriert: 11. August 2011 10:07

Re: LNK2001 und LNK2019

Beitrag von lespaul »

Windows XP 32bit, Microsoft Visual Studio 9. DIe Projektdateien wurden mit cmake-2.8 generiert.
ReBuild hat den fehler behoben bin erstmal zufrieden.
Antworten