Anfängerproblem: keine .cpp bzw. .h

Verschiedenes zu Qt
Antworten
Klicker
Beiträge: 4
Registriert: 13. August 2005 10:31

Anfängerproblem: keine .cpp bzw. .h

Beitrag von Klicker »

Hi!

Also ich habe mir vor ein paar Tagen die OpenSource-Edition von Qt4 für Windows gedownloadet und möchte jetzt einiges testen. Ich möchte vorerst mit C++ arbeiten, aber am Ende soll (hoffentlich) Qt das lahme Tk in meinen Perl-Programmen ersetzen - dafür möchte ich dann PerlQt nehmen.

Nun zum eigentlichen Problem: Ich kann im Designer wunderschöne Oberflächen erstellen - aber das wars dann auch schon. Ich kann eine .ui abspeichern, mehr nicht. Von Qt3 kenne ich noch die Projekt-Dateien .pro, aber die scheint es hier nicht wirklich zu geben, obwohl in der Dokumentation recht oft davon gesprochen wird. Und ab hier ist auch schon Pumpe, ich habe kA wie es weitergeht. Wie werden die .cpp, .h, .pro & co. erstellt? Wie kann ich den endgültigen Code sehen bzw. compilieren?

Ich bin für jeden Hinweis sehr dankbar und bitte nicht hauen, wenn ich was übersehen habe ;)

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

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
methusalem
Beiträge: 186
Registriert: 11. August 2005 08:21

Re: Anfängerproblem: keine .cpp bzw. .h

Beitrag von methusalem »

Moin,
Klicker hat geschrieben:Hi!
...
Nun zum eigentlichen Problem: Ich kann im Designer wunderschöne Oberflächen erstellen - aber das wars dann auch schon. Ich kann eine .ui abspeichern, mehr nicht. Von Qt3 kenne ich noch die Projekt-Dateien .pro, aber die scheint es hier nicht wirklich zu geben, obwohl in der Dokumentation recht oft davon gesprochen wird. Und ab hier ist auch schon Pumpe, ich habe kA wie es weitergeht. Wie werden die .cpp, .h, .pro & co. erstellt? Wie kann ich den endgültigen Code sehen bzw. compilieren?

Ich bin für jeden Hinweis sehr dankbar und bitte nicht hauen, wenn ich was übersehen habe ;)
Ich gebe dir recht! Die Doku ist nicht sehr hilfreich, wenn man ohne Vorkentnisse verstehen möchte, wie QT "funktioniert". Ich vermisse in der Doku ein Diagramm, in dem gezeigt wird, wie man aus nem *.ui File ne Applikation macht.

Im Prinzip sind es schon die obigen Links, die dir weiterhelfen. Wenn du verstehen willst, was im Hintergrund passiert, solltest du dir diese Seite noch ansehen:
http://doc.trolltech.com/4.0/tools-list.html
Speziell die Tools qmake, uic & moc sind wichtig. Der uic generiert beispielsweise aus deinen ui Dateien die cpp und h Dateien.
Grundsätzlich brauchst du das aber nicht einzeln zu machen. Das erledigt qmake für dich. Mit

Code: Alles auswählen

qmake -project
wird dir ein Projektfile generiert, mit dem du dann mit qmake ein Makefile erstellen kannst und dann halt mit deinem Make-Tool kompilieren kannst.
Martin
Klicker
Beiträge: 4
Registriert: 13. August 2005 10:31

Beitrag von Klicker »

Erstmal vielen Dank für eure Antworten!

Ich glaub, ich bin echt zu blöd. Ich habe jetzt sogar meine test.ui ins bin-Verzeichnis von Qt kopiert und qmake -project ausgeführt. An der Kommandozeile gibt qmake nichts aus und Dateien werden auch nicht erstellt. Muss ich vielleicht noch weitere Parameter übergeben als "nur" den -project-Schalter?

Zu den o.g. Links: die Tutorials-Seite ist sicherlich nett, aber da ist schon der Quellcode gegeben und der Designer wird einfach übergangen (zumindest soweit ich sehen konnte). Das How-to-learn-Qt ist für mich dagegen eher ein Mysterium, mehr fällt mir da jetzt nicht ein.

MfG
Klicker
methusalem
Beiträge: 186
Registriert: 11. August 2005 08:21

Beitrag von methusalem »

Moin,
Klicker hat geschrieben: Ich glaub, ich bin echt zu blöd. Ich habe jetzt sogar meine test.ui ins bin-Verzeichnis von Qt kopiert und qmake -project ausgeführt. An der Kommandozeile gibt qmake nichts aus und Dateien werden auch nicht erstellt. Muss ich vielleicht noch weitere Parameter übergeben als "nur" den -project-Schalter?
Vorweg: Ich bin auch kein QT Experte. Hab das während einer Ausbildung mal gestreift und möchte mich nun auch in die Version 4 einarbeiten!

Ich hab das so gemacht. Download der OpenSource Version für Win mit der MingGW Umgebung. Setup gestartet - warten - fertig!

Dann hab ich ein Verzeichniss angelegt, in dem ich meine Test.ui gespeichert habe. Dann bin ich über den Link "QT 4.0.0 Command Prompt" im Startmenü auf ne Dos Konsole gegangen. Dieser Link startet noch ne Batch Datei, die ein paar Variablen setzt. Dann mit cd in das Verzeichniss, in dem meine ui Datei liegt. Mit qmake -project wurde dann ein pro File erstellt. Dann mit qmake ein Makefile ertsellen und dann noch make aufrufen. Danach hatte ich ne exe
Martin
Klicker
Beiträge: 4
Registriert: 13. August 2005 10:31

Beitrag von Klicker »

Code: Alles auswählen

D:\test>make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `D:/test'
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,windows -o "release\test.exe"   -L"D:\qt\4.0\lib" -lmingw32 -lqtmain -lQtCore4 -lQtGui4
D:\qt\4.0\lib/libqtmain.a(qtmain_win.o)(.text+0x26):qtmain_win.cpp: undefined reference to `__gxx_personality_sj0'
D:\qt\4.0\lib/libqtmain.a(qtmain_win.o)(.text+0x1f7):qtmain_win.cpp: undefined reference to `qMain(int, char**)'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\test.exe] Error 1
mingw32-make[1]: Leaving directory `D:/test'
mingw32-make: *** [release] Error 2
Ok, soweit bin ich jetzt, dank dir nochmal :) Weiß irgendjemand was das hier nun wieder ist? Das bekomme ich nachdem ich mit qmake -project und qmake die Dateien erstellt und dann den Prozess mit make gestartet habe.

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

Beitrag von Christian81 »

Wollt ihr es nicht kapieren?
Arbeitet erstmal das Tutorial durch, dann schaut euch die beiligenden examples an und stellt dazu Fragen wenn ihr welche habt.
Danach versucht ein eigenes kleiens Projekt!
Wir sind gern bereit euch zu helfen, aber wenn ihr keine Ahnung von den Grundlagen habt, macht es einfach keinen Sinn!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
methusalem
Beiträge: 186
Registriert: 11. August 2005 08:21

Beitrag von methusalem »

Guten Morgen,
welche Laus ist dir denn über die Leber gelaufen?
Christian81 hat geschrieben:Wollt ihr es nicht kapieren?
Arbeitet erstmal das Tutorial durch, dann schaut euch die beiligenden examples an und stellt dazu Fragen wenn ihr welche habt.
Danach versucht ein eigenes kleiens Projekt!
Wir sind gern bereit euch zu helfen, aber wenn ihr keine Ahnung von den Grundlagen habt, macht es einfach keinen Sinn!
Ich finde deinen Ton unter aller Kanone. So geht man nicht miteinander um! Kein Mensch hat hier etwas gegen dich persönlich geäußert, so das du dich angemacht fühlen müsstest.

Sei froh, wenn du mit QT so gut zurechtkommst. Es scheint ja so, das du dich gut auskennst. Wenn das so ist, ist dein zweites Posting dermaßen arogant, das mir dazu nichts mehr einfällt.

Wenn es dich nervt, das hier Greenhorns posten, dann ignoriere sie doch einfach. Oder belasse es bei deinem ersten Post. Ich gebe dir ja recht, das es besser ist, erstmal die Beispiele nachzubasteln. Klicker hat nun mal einen anderen Weg gewählt. Das steht ihm frei. Du brauchst Ihm ja nicht zu helfen. Aber angiften brauchst du Ihn auch nicht.

Den Rest, wenn er nicht fachlicher Art ist, sollten wir per PN klären!

@Klicker: Bleib am Ball - QT macht Spaß!
Martin
Klicker
Beiträge: 4
Registriert: 13. August 2005 10:31

Beitrag von Klicker »

Morgen!

@Christian81: Ich habe jetzt deinen Ton einfach mal überhört.
Die Tutorials habe ich jetzt noch einmal ganz genau unter die Lupe genommen. Ergebnis: wie schon im zweiten Posting genannt habe ich dort nur den fertigen Quellcode (sehr gut dokumentiert!) vorgefunden. Der lässt sich auch problemlos kompilieren. Deshalb habe ich das Makefile von qmake mal zerlegt und konnte mit uic sogar eine Header-Datei erstellen. Dort fiel mir auf, dass der Code des Designers einige Unterschiede zu dem Code der Tutorials aufweist. Ergo scheint hier der Haken zu liegen und nicht im Verständis des Codes, wie du mir hier unterstellst.

@methusalem: danke für deine aufbauenden Worte :) Ich bleibe natürlich am Ball und werde nicht aufgeben. Ich konnte sogar schon PerlQt mit den Tutorials zum Laufen kriegen! Nur der Designer-Code macht mir sowohl bei MinGW als auch bei Perl Schwierigkeiten.

Mein Fehler scheint nicht so wirklich bekannt zu sein, hab natürlich auch schon gegoogled und nix gefunden.
Egal was ich mit dem Designer erstelle, es kommt immer dieser Fehler :(

MfG
Klicker
yoshi00
Beiträge: 12
Registriert: 31. Januar 2007 17:48

Beitrag von yoshi00 »

Ich bekomme die selbe Fehlermeldung wie "Klicker" und das beim Tutorial 8 von Qt..

hab den code einfach mal downgeloadet..und selbst dann funktioniert das kompilieren nicht...

hat schon jemand diesen fehler gehabt und behoben??
wie??

Besten dank im voraus

yoshi00
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Beitrag von MichaelS »

Moin,
Dort fiel mir auf, dass der Code des Designers einige Unterschiede zu dem Code der Tutorials aufweist. Ergo scheint hier der Haken zu liegen...
Ich glaube nicht, dass das Problem im Code liegt, denn der Linker bricht ab, weil er eine Funktion in einer bestimmten Bibiliothek nicht finden kann. Beim googlen nach der Fehlermeldung findet man diverse Beiträge zu dieser Fehlermeldung mit folgenden Hinweisen:

- Es wird der gcc statt des g+ Compilers verwendet
- Es wird gegen die libstdc statt gegen das c++ Gegenstück (libstdc++) gelinkt.

Als mögliche Lösung wird z.B. angeboten:
link with libstdc++.a (ie, inlude -lstdc++ on the command line).
Ich hoffe, das hilft ein wneig weiter. Mehr kann ich zu diesem Thema nicht beitragen, da ich selbst nicht unter Windoof arbeite.

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

Beitrag von Christian81 »

Hat sich doch schon längst erledigt -> http://www.qtforum.de/forum/viewtopic.php?t=3648
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten