Linker Problem

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
huckleberry
Beiträge: 115
Registriert: 2. Oktober 2010 17:07

Linker Problem

Beitrag von huckleberry »

Hallo Forum,


ich habe da ein Linker Problem:
2> Creating library C:\Eigene Dateien\project\build-vs9-2322\MyProject\Debug\MyProject.lib and object M:\Eigene Dateien\project\build-vs9-2322\MyProject\Debug\MyProject.exp
2>MyClassDialog.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall MyClassDialog::metaObject(void)const " (?metaObject@MyClassDialog@@UBEPBUQMetaObject@@XZ)
2>MyClassDialog.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall MyClassDialog::qt_metacast(char const *)" (?qt_metacast@MyClassDialog@@UAEPAXPBD@Z)
2>MyClassDialog.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall MyClassDialog::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyClassDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
2>C:\Eigene Dateien\project\build-vs9-2322\MyProject\Debug\MyProject.dll : fatal error LNK1120: 3 unresolved externals
Es wird fehlerfrei kompiliert.
*.h und *.cpp liegen im Solution Explorer in den entsprechenden Header und Source Ordnern.
Google sagt, dass andere Klassen, auf dessen Funktionen NICHT zugreifen könnten.
Die lib sei falsch oder gar nicht verlinkt:
--> Project Settings --> Configuration Properties --> General --> Configuration Type war auf *.dll. Soll eig. auch so sein. Und im oberproject habe ich auch die *.lib welche dieser produziert bei Additional Linker Files eingetragen.

Hat jemand Hinweise für mich? Ich danke im voraus.

Mfg Huck
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

MyClassDialog
Verwendet doch signale und Slots nehm ich mal an ...

QObject-Macro steht im Header ?
die vom Moccer erzeuge datei (irgendwas mit MyClassDialog_moc.cpp) wird mitcompiliert und gelinkt ?

Ciao ...
huckleberry
Beiträge: 115
Registriert: 2. Oktober 2010 17:07

Beitrag von huckleberry »

RHBaum hat geschrieben: Verwendet doch signale und Slots nehm ich mal an ...

QObject-Macro steht im Header ?
die vom Moccer erzeuge datei (irgendwas mit MyClassDialog_moc.cpp) wird mitcompiliert und gelinkt ?
Jupp, Signals und Slots und jupp macro steht im Header:

Code: Alles auswählen

class MyClassDialog: public QDialog
{
    Q_OBJECT
//... usw...
Im Ordner ist die Datei "moc_MyClassDialog.cxx_parameters" zu sehen, die eigenliche moc (moc_MyClassDialog.cxx) fehlt aber? Diese wurde dann nicht kompiliert? Oder liegt diese woanders (eigentlich immer im gleiche Ordner woseit ich weiss??)?

Wo kann ich nachsehen, ob die moc mitgelinkt wird?
huckleberry
Beiträge: 115
Registriert: 2. Oktober 2010 17:07

Beitrag von huckleberry »

alles klar. Nun hab ich das Macro mal auskomentiert, keine Fehler mehr???

Eigenartig.
Antworten