QT-Fehler bei Verwendung von QObject



  • Hallo, ich hab ein Problem. Ich verwende QT mit Visual C++.
    Dort hab ich ein Programm geschrieben, dass auch funktioniert, nur wenn ich innerhalb meiner (einzigen) verwendeten Klasse Q_OBJECT schreibe, macht er mir ein paar Link-Fehler:

    Test.obj : error LNK2001: Nichtaufgeloestes externes Symbol "protected: virtual void __thiscall Test::initMetaObject(void)" (?initMetaObject@Test@@MAEXXZ)
    Test.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual char const * __thiscall Test::className(void)const " (?className@Test@@UBEPBDXZ)
    Test.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static class QMetaObject * __cdecl Test::staticMetaObject(void)" (?staticMetaObject@Test@@SAPAVQMetaObject@@XZ)#

    Die Klasse heißt Test, und erbt von QWidget. Wie gesagt, ohne Q_OBJECT gehts...
    Vielen Dank

    ArturW



  • Hast du die Library dazugelinkt?



  • Macht Visual Studio ja automatisch. Wenn ich die Beispielprogramme kompiliere gehts auch. Nur bei meinem selbstgeschriebenen nicht



  • Wieso sollte das VisualStudio die Library von irgend einem Drittanbieter automatisch dazulinken? Das ist Humbug!



  • Einfach so natürlich nicht. Aber wenn man Qt installiert und nachher auch das Plugin für Visual Studio installiert, sind die Einstellungen alle drin. Ich geb mal die Zeile fürs linken an:

    kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib wsock32.lib winmm.lib
    $(QTDIR)\lib\qt-mt230nc.lib $(QTDIR\lib\qtmain.lib
    /incremental:yes /pdb:"Debug/tutorial.pdb" /machine:IX86 /nodefaultlib:"libc" /out:"Debug/tutorial.exe"



  • genehmigt 😉
    Dann weiss ichs leider auch nicht. Sorry.


Anmelden zum Antworten