Wie machst Du es mit MinGW? Doch hoffentlich nicht von Hand, oder? und qmake kann das genauso für msvc...TheDON hat geschrieben: Ich habe jedoch gelesen, dass man in Verwendung von Q_OBJECT die "moc" Datei erstellen muss... ich wusste wie das funktioniert mit mingw als compiler... aber kann mir in diesem Fall jemand helfen mit vc2005?? Das wäre cool danke!!
[gelöst] Eigene Public Slots funktionieren nicht!
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Hallo Christian!
Ja, du hast recht ehehe.. am Anfang machte ich es manuell aber dann bemerkte ich, dass mingw das selbst tut... also von dem her hatte sich das mit mingw erledigt... aber msvc2005 macht das anscheinend nicht automatisch, denn ich würde ansonsten keine Fehlermeldungen erhalten.
Darum denke ich, man muss irgend einen Befehl "absetzen" um zu MOCKEN!
Gruss
Ja, du hast recht ehehe.. am Anfang machte ich es manuell aber dann bemerkte ich, dass mingw das selbst tut... also von dem her hatte sich das mit mingw erledigt... aber msvc2005 macht das anscheinend nicht automatisch, denn ich würde ansonsten keine Fehlermeldungen erhalten.
Darum denke ich, man muss irgend einen Befehl "absetzen" um zu MOCKEN!
Gruss
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Nicht MinGW macht es allein sondern qmake. Und wenn dein von qmake erstelltest vcproj nicht funktioniert (aber eben mit mingw), dann liegt es an qmake.TheDON hat geschrieben:Hallo Christian!
Ja, du hast recht ehehe.. am Anfang machte ich es manuell aber dann bemerkte ich, dass mingw das selbst tut... also von dem her hatte sich das mit mingw erledigt... aber msvc2005 macht das anscheinend nicht automatisch, denn ich würde ansonsten keine Fehlermeldungen erhalten.
Darum denke ich, man muss irgend einen Befehl "absetzen" um zu MOCKEN!![]()
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Hast Du die QtVSIntegration installiert? Dann wird das automatisch beim hinzufügen der Headerdatei eingetragen. Ansonsten: Datei auswählen, Eigenschaften/Benutzerdef Buildschritt/Allgemein und etwa sowas eintragen:TheDON hat geschrieben:aber msvc2005 macht das anscheinend nicht automatisch
Befehlszeile: $(QTDIR)\bin\moc.exe "$(InputName).h" -o ".\GeneratedFiles\moc_$(InputName).cpp"
Beschreibung: Moc'ing $(InputName).h...
Ausgaben: ".\GeneratedFiles\moc_$(InputName).cpp"
Zusätzliche Abhängigkeiten: $(QTDIR)\bin\moc.exe;inc\$(InputName).h
Danach zum testen die Datei einmal einzeln kompilieren.
Der MOC-Schritt muss hierbei hinzugefügt werden. Wie du ein konformes Projekt für VC 2005 erstellt, findest du hier.TheDON hat geschrieben:Hallo Jungs!
Besten Dank!
Ja, hatte ich bereits probiert aber wenn ich das Q_OBJECT Macro einfüge dann habe ich nur Linkerfehlermeldungen
Ich habe jedoch gelesen, dass man in Verwendung von Q_OBJECT die "moc" Datei erstellen muss... ich wusste wie das funktioniert mit mingw als compiler... aber kann mir in diesem Fall jemand helfen mit vc2005?? Das wäre cool danke!!
...einfach eine Kurze step-by-step guide!
Danke jungs!!!
Gruss,
TheDON
Hallo Jungs!
Also.. ein Schrittchen weiter...
Danke euch allen!
Die moc_datei wird also automatisch erstellt beim definieren des Q_OBJECT macros...
ABER
schaut mal was dann beim Kompilieren kommt:
Ich vermute wieder irgend eine Umgebungsvariable die eingetragen werden muss...
Habt ihr ne Ahnung??
Danke!!!
Gruss,
TheDON
Also.. ein Schrittchen weiter...
Danke euch allen!
Die moc_datei wird also automatisch erstellt beim definieren des Q_OBJECT macros...
ABER
schaut mal was dann beim Kompilieren kommt:
Code: Alles auswählen
------ Build started: Project: DonaDict, Configuration: Debug Win32 ------
Compiling...
gui.cpp
Linking...
moc_gui.obj : error LNK2019: unresolved external symbol "public: void __thiscall GUI::onSuchenClicked(void)" (?onSuchenClicked@GUI@@QAEXXZ) referenced in function "public: virtual int __thiscall GUI::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GUI@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
moc_gui.obj : error LNK2019: unresolved external symbol "public: void __thiscall GUI::onGesamtesDiktionaerAnzeigenClicked(void)" (?onGesamtesDiktionaerAnzeigenClicked@GUI@@QAEXXZ) referenced in function "public: virtual int __thiscall GUI::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GUI@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
moc_gui.obj : error LNK2019: unresolved external symbol "public: void __thiscall GUI::onAenderungenSpeichernClicked(void)" (?onAenderungenSpeichernClicked@GUI@@QAEXXZ) referenced in function "public: virtual int __thiscall GUI::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GUI@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
moc_gui.obj : error LNK2019: unresolved external symbol "public: void __thiscall GUI::onEintragEntfernenClicked(void)" (?onEintragEntfernenClicked@GUI@@QAEXXZ) referenced in function "public: virtual int __thiscall GUI::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GUI@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
moc_gui.obj : error LNK2019: unresolved external symbol "public: void __thiscall GUI::onAboutSelected(void)" (?onAboutSelected@GUI@@QAEXXZ) referenced in function "public: virtual int __thiscall GUI::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GUI@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
moc_gui.obj : error LNK2019: unresolved external symbol "public: void __thiscall GUI::onHilfethemenSelected(void)" (?onHilfethemenSelected@GUI@@QAEXXZ) referenced in function "public: virtual int __thiscall GUI::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GUI@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
moc_gui.obj : error LNK2019: unresolved external symbol "public: void __thiscall GUI::onBestehendesDiktionaerLoeschenSelected(void)" (?onBestehendesDiktionaerLoeschenSelected@GUI@@QAEXXZ) referenced in function "public: virtual int __thiscall GUI::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GUI@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
moc_gui.obj : error LNK2019: unresolved external symbol "public: void __thiscall GUI::onNeuesDiktionaerErstellenSelected(void)" (?onNeuesDiktionaerErstellenSelected@GUI@@QAEXXZ) referenced in function "public: virtual int __thiscall GUI::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GUI@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
debug\DonaDict.exe : fatal error LNK1120: 8 unresolved externals
Build log was saved at "file://c:\Dokumente und Einstellungen\Donato\Desktop\DonaDict\debug\BuildLog.htm"
DonaDict - 9 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Habt ihr ne Ahnung??
Danke!!!
Gruss,
TheDON
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Entschuldige die dumme Frage aber was ist die VS-Integration??
Ich dachte durch Folgen der HowTo wie man Qt mit VS2005 verbastelt hat man bereits alles gemacht...
macman hat oben bereits etwas von der QtVSIntegration erwähnt.. aber verstehe im Moment nicht ganz wie ich diese Optionen hinzufügen kann..
Die Eigenschaften der Datei innerhalb von vc2005??
Danke nochmals für eure Geduld!
Gruss
Ich dachte durch Folgen der HowTo wie man Qt mit VS2005 verbastelt hat man bereits alles gemacht...
macman hat oben bereits etwas von der QtVSIntegration erwähnt.. aber verstehe im Moment nicht ganz wie ich diese Optionen hinzufügen kann..
Die Eigenschaften der Datei innerhalb von vc2005??
Danke nochmals für eure Geduld!
Gruss
Damit wär die Frage, ob Du es installiert hast, beantwortet. VS-Integration ist verfügbar, wenn man eine Kommerzlizenz hat. Ist ein Plugin für VS und nimmt einem ne Menge Handarbeit ab. Zusätzlich ist der Designer eingebunden, sowie die Qt-Doku in der Hilfe.TheDON hat geschrieben:Entschuldige die dumme Frage aber was ist die VS-Integration??
Wo sonst? Ob das bei Visual Studio Express aber auch so ist, weiß ich nicht.TheDON hat geschrieben:Die Eigenschaften der Datei innerhalb von vc2005??
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
So und jetzt nochmal meine Frage - erstellst du das vcproj mit qmake? Wenn ja und es gibt immer noch den Linkerfehler, dann ist es ein Fehler in qmake.
Wenn du es von Hand erstellst (warum auch immer), solltest du mal Signals und Slots zu Gemüte führen und auch die Doku zu moc lesen...
Wenn du es von Hand erstellst (warum auch immer), solltest du mal Signals und Slots zu Gemüte führen und auch die Doku zu moc lesen...
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Hallo Christian!Christian81 hat geschrieben:So und jetzt nochmal meine Frage - erstellst du das vcproj mit qmake? Wenn ja und es gibt immer noch den Linkerfehler, dann ist es ein Fehler in qmake.
Wenn du es von Hand erstellst (warum auch immer), solltest du mal Signals und Slots zu Gemüte führen und auch die Doku zu moc lesen...
Also... ja ich erstelle es mit qmake! aber so ist es auch bei der Howto beschrieben!
ich mache zuerst einen qmake -project (alle cpp und h dateien bestehen bereits)
danach mache ich einen qmake -tp vc <projektname>
fertig!
hier schaue Mal was ich sonst noch gefunden in der moc datei die erstellt wird:
Code: Alles auswählen
/****************************************************************************
** Meta object code from reading C++ file 'gui.h'
**
** Created: Do 20. Apr 12:45:42 2006
** by: The Qt Meta Object Compiler version 59 (Qt 4.1.1)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "../gui.h"
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'gui.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 59
#error "This file was generated using the moc from 4.1.1. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
bin jetzt echt langsam am verzweifeln.
Ps. wie sollte ich das projekt denn automatisiert erstellen??
wenn ich es nicht mit qmake mache, sondern direkt mit vc2005, dann habe ich noch mehr linker fehler...
gruss
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Das ist auch korrekt so (nur hast du es noch nie erwähnt). Wenn du dann das Projekt (neu) kompilierst, sollte auch alles gehen. Ich glaube nicht dass qmake einen Fehler macht. Zum Test kannst Du mit qmake mal ein vcproj für den linguist erstellen lassen - wenn das geht (dort werden auch mocs verwendet) liegt der Fehler bei Dir, ansonsten bei qmake.TheDON hat geschrieben: ich mache zuerst einen qmake -project (alle cpp und h dateien bestehen bereits)
danach mache ich einen qmake -tp vc <projektname>
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Okey... habe ich auch probiert!
Aber ebenso beim versuchen der linguist zu kompilieren kommt folgende Fehlermeldung:
Wahrscheinlich muss man aber sonst was konfigurieren um den linguist zu kompilieren... (???)
hast du sonst noch eine idee?? Ich meine... wie finde ich am Besten heraus wieso das mit dem moc-file nicht tut??
Ich habe mir auch bereits überlegt mingw zu installieren um zu schauen ob es mit mingw32-make dann tut....
denkst du es macht sinn??
Gruss
Aber ebenso beim versuchen der linguist zu kompilieren kommt folgende Fehlermeldung:
Code: Alles auswählen
------ Build started: Project: linguist, Configuration: Debug Win32 ------
RCC linguist\linguist.qrc
C:\Programme\QT\bin\rcc.exe: File does not exist 'linguist\linguist.qrc'
Project : error PRJ0019: A tool returned an error code from "RCC linguist\linguist.qrc"
Build log was saved at "file://c:\Programme\QT\tools\linguist\linguist\tmp\obj\debug_shared\BuildLog.htm"
linguist - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
hast du sonst noch eine idee?? Ich meine... wie finde ich am Besten heraus wieso das mit dem moc-file nicht tut??
Ich habe mir auch bereits überlegt mingw zu installieren um zu schauen ob es mit mingw32-make dann tut....
denkst du es macht sinn??
Gruss
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
ja... als ich qt 3.3 hatte! jetzt habe ich aber mein Laptop neu aufgesetzt und auf qt 4.1.1 umgestiegen OHNE mingw als compiler...Christian81 hat geschrieben:Deine Instalation ist Schrott - linguist.qrc ist in qt-4\tools\linguist\linguist ...
was ich nicht verstehe ist, warum er linguist\linguist.qrc sucht.
Und mingw - sagtest du icht eingangs dass es mit MinGW geht???
aber weisst du.. zum Testen ob es ein allgemeines Problem ist dachte ich, ich installiere mingw und probiere es aus...
Also eben.. eine andere Idee hast du nicht??
Vielen Dank für Deine Zeit!
Sehr nett von dir!