[gelöst] Linker Probleme trotz Q_OBJECT

Alles rund um die Programmierung mit Qt
Antworten
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

[gelöst] Linker Probleme trotz Q_OBJECT

Beitrag von pospiech »

Ich bekomem die folgenden Fehler:

1>Verknüpfen...
1>DialogPhaseShaperOutput.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __thiscall MaximizeOnScreen::metaObject(void)const " (?metaObject@MaximizeOnScreen@@UBEPBUQMetaObject@@XZ)".
1>DialogPhaseShaperVideo.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __thiscall MaximizeOnScreen::metaObject(void)const " (?metaObject@MaximizeOnScreen@@UBEPBUQMetaObject@@XZ)".
1>DialogPhaseShaperOutput.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void * __thiscall MaximizeOnScreen::qt_metacast(char const *)" (?qt_metacast@MaximizeOnScreen@@UAEPAXPBD@Z)".
1>DialogPhaseShaperVideo.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void * __thiscall MaximizeOnScreen::qt_metacast(char const *)" (?qt_metacast@MaximizeOnScreen@@UAEPAXPBD@Z)".
1>DialogPhaseShaperOutput.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual int __thiscall MaximizeOnScreen::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MaximizeOnScreen@@UAEHW4Call@QMetaObject@@HPAPAX@Z)".
1>DialogPhaseShaperVideo.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual int __thiscall MaximizeOnScreen::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MaximizeOnScreen@@UAEHW4Call@QMetaObject@@HPAPAX@Z)".
1>DialogPhaseShaperVideo.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""private: void __thiscall DialogPhaseShaperVideo::maximizeOnScreen(void)" (?maximizeOnScreen@DialogPhaseShaperVideo@@AAEXXZ)" in Funktion ""public: __thiscall DialogPhaseShaperVideo::DialogPhaseShaperVideo(class QWidget *,class QFlags<enum Qt::WindowType>)" (??0DialogPhaseShaperVideo@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z)".
1>widgetDockPhaseShapes.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __thiscall widgetDockPhaseShapes::metaObject(void)const " (?metaObject@widgetDockPhaseShapes@@UBEPBUQMetaObject@@XZ)".
1>widgetDockPhaseShapes.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void * __thiscall widgetDockPhaseShapes::qt_metacast(char const *)" (?qt_metacast@widgetDockPhaseShapes@@UAEPAXPBD@Z)".
1>widgetDockPhaseShapes.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual int __thiscall widgetDockPhaseShapes::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@widgetDockPhaseShapes@@UAEHW4Call@QMetaObject@@HPAPAX@Z)".
also in den Klassen
- DialogPhaseShaperOutput
- DialogPhaseShaperVideo
- widgetDockPhaseShapes

in allen steht ein Q_OBJECT und für alle ist ein moc_Datei im Projekt vorhanden. Warum geht es dann trotzdem nicht?

Matthias
Zuletzt geändert von pospiech am 11. Juli 2008 12:46, insgesamt 1-mal geändert.
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

Ich hatte in eine Klasse MaximizeOnScreen, von der
- DialogPhaseShaperOutput
- DialogPhaseShaperVideo
ableiten ein Q_OBJECT drinstehen was nicht korrekt war. Nachdem ich das rausgenommen habe bekome ich aber noch immer einen Fehler:
1>DialogPhaseShaperVideo.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""private: void __thiscall DialogPhaseShaperVideo::maximizeOnScreen(void)" (?maximizeOnScreen@DialogPhaseShaperVideo@@AAEXXZ)" in Funktion ""public: __thiscall DialogPhaseShaperVideo::DialogPhaseShaperVideo(class QWidget *,class QFlags<enum Qt::WindowType>)" (??0DialogPhaseShaperVideo@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z)".
EDIT: Es war einfach die Funktion 'void maximizeOnScreen();' wirklich noch in der Klasse 'DialogPhaseShaperVideo' definiert, wo sie aber nicht hingehörte.
Antworten