Qt 4.1 und Visual C++ - Express 2005

Verschiedenes zu Qt
Mister_Crac
Beiträge: 28
Registriert: 10. August 2006 12:17

Beitrag von Mister_Crac »

Christian81 hat geschrieben: TT hat sich nunmal entschieden, nur wirklich freie Compiler zu unterstützen - und dann ist nunmal nur mingw. Wenn ich das manchmal so lese bedauere ich fast dass sie Qt4 überhaupt für Windows unter die GPL gestellt haben...
Dev-C++ ist kostenlos, läuft unter Windows und benutzt den MinGW.
Was spricht also dagegen, wenn es von offizieller Seite eine vernünftige Anleitung gäbe, die erklärt wie man beides zusammen zum Laufen bringt?
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Manchmal...

Beitrag von Volker »

Ich finde die Diskussion etwas überhitzt...

Ich kann verstehen wenn Trolltech die OpenSource Version nur für offene Compiler unterstützt, aber trotzdem freue ich mich riesig, dass es den inoffiziellen Patch gibt, denn meine bevorzugte IDE ist nun mal Visual Studio und in den allermeisten Fällen reicht mir das, da ich Linux so gut wie nie benutze. Der entscheidende Vorteil von QT ist aber nicht nur, dass es plattformübergreifend ist, sondern eben auch QT ansich. Mal ehrlich wer programmiert gerne mit MFC oder noch schlimmer der Windows API?

Mit qmake hab ich noch nicht viel Erfahrung, weil mir das suchen nach den entsprechenden Schlüsselwörtern bisher zu viel Aufwand war. Bei Visual Studio kenn ich mich nach 4 Jahren nun mal aus und weiss wo ich was eintragen muss, damit es läuft. Deshalb hab ich mein Tutorial auch ohne die Verwendung von QMake geschrieben.

Wenn ich Zeit habe (momentan ist das leider nicht der Fall) werde ich mich mal näher mit QMake beschäftigen und dafür nach Möglichkeit auch ein Tutorial schreiben. Bis dahin hoffe ich, dass ich mit meinem Tutorial allen weiterhelfen kann die Visual Studio und QT zum laufen bringen wollen, dass es weiterhin die inoffiziellen Patches gibt und dass die unnötige Linux / Windows Diskussion wieder sachlich wird.

Wenn mir jemand mitteilt wo evtl. Unterschiede bei der Anwendung meines Tutorials für VS2005 zur Express Edition sind, dann werd ich das gerne gesondert integrieren. Selber die Express Edition installieren, werde ich erst wenn ich mal wieder Zeit hab und eh mein Rechner platt mache.

P.S. @Shadow du hast geschrieben, dass Du auch irgendwo eine Step by Step Anleitung veröffentlicht hast,... wo befindet sich die denn?
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von Shadow »

Mister_Crac hat geschrieben:
Es geht doch darum, dass man direkt in der Entwicklungsumgebung kompilieren und linken will. Und nicht erst große Konsolen-Orgien mit qmake -project und qmake und hastenichgesehen. Dann kann man auch gleich mit vi und Konsole arbeiten. ;-)
Wo liegt das Problem?
Die Batch-Datei anlegen, einmal über's Projekt drüber laufen lassen und du brauchst die kein einziges Mal mehr, außer du fügst neue Dialoge u.s.w. hinzu. Und dafür kannste dir unter VS ein Button bauen, der die Batchdatei aufruft und sofort sind alle neuen Änderungen bzw. neue Bestandteile konsistent mit ins Projekt eingebunden. Nix "vi", nix Konsole.
René
Beiträge: 75
Registriert: 15. August 2006 11:14
Kontaktdaten:

Beitrag von René »

Vielen Dank für die Antwort, shadow. Was meinst du, ich müsste bei VS alles per Hand pro Projekt einstellen ? Ich stell da gar nix ein, nachdem ich eine vproj erzeugt habe mit qmake -tp vc name.pro kann ich schon direkt mit kompilieren aus VS heraus beginnen. Eine weitere cpp oder h Datei dem Projekt hinzuzufügen habe ich auch nur über VS gemacht, die *.pro Datei habe ich nie wieder angefasst. Bis jetzt klappt alles wunderbar.

Ich muss gestehen, das ich nicht VS Express 2005 verwende sondern die Professional Version, über eine MSDN AA Lizenz von der Uni. ( Ich fange mit der Diplomarbeit im Herbst/Winter an und wollte dabei Qt4 verwenden ) Da habe ich wohl das Plattform SDK längst mit installiert.

Hat vielleicht noch jemand eine Idee zu der Warnung

Code: Alles auswählen

MSVCRTD.lib(cinitexe.obj) : warning LNK4098: Standardbibliothek "libcmtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
die ich jedesmal bekomme, wenn ich Qt4.1.4 selbst order irgendeins meiner Projekte kompiliere ?
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag von Volker »

René hat geschrieben: Hat vielleicht noch jemand eine Idee zu der Warnung

Code: Alles auswählen

MSVCRTD.lib(cinitexe.obj) : warning LNK4098: Standardbibliothek "libcmtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
die ich jedesmal bekomme, wenn ich Qt4.1.4 selbst order irgendeins meiner Projekte kompiliere ?
Das hängt mit der Einstellung unter C++ / Code Generation bzw. C++ / Codeerstellung zusammen und den Laufzeitbibliotheken die Du für Dein Projekt verwendest. Seit VS2005 gibt's dort glaub ich nur noch
Multithreaded
Multithreaded Debug
Multithreaded DLL
Multithreaded DLL Debug

die SingleThreaded Bibliotheken aus VS2003 sind meines Wissens entfernt worden. Die genaue Bedeutung der einzelnen Varianten ist mir bis heute leider auch nicht klar. Ist bei mir immer ein Trial and Error, aber so lange es nur zu der einen Warnung kommt, kann man die meiner Erfahrung nach getrost vernachlässigen. Schlimmer wird's wenn's zu mysteriösen Linkerfehlern kommt, weil die falsche Laufzeitbibliothek ausgewählt wurde oder eine andere Bibliothek in deinem Projekt nicht mit den gleichen Einstellungen erzeugt wurde.
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Die Warnung kommt da die statische qtmain.lib mit -MT(d), die anderen libs aber mit -MD(d) kompiliert worden sind. Und bis jetzt hat es noch nicht geschadet. qtmain mit MD zu kompilieren wäre imho nicht gut da dann jede statische lib damit kompiliert würde.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
René
Beiträge: 75
Registriert: 15. August 2006 11:14
Kontaktdaten:

Beitrag von René »

Danke für Eure Hilfe, dann werde ich diese Warnung erstmal ignorieren.
Mister_Crac
Beiträge: 28
Registriert: 10. August 2006 12:17

Beitrag von Mister_Crac »

Volker hat geschrieben: Verschieb doch mal die UI Datei in dein Projekt (z.B. unter Resourcendateien), statt es nur unter Projektmappen Elemente einzufügen. Dann dürften auch oben erwähnte Einstellungen inkl. Benutzerdefinierten Buildschritt vorhanden sein.
Ah, jetzt, ja! Vielen Dank für die Hilfe :-)
Ich hätte da noch ein, zwei Anmerkungen zu Deiner Installations-Anleitung. Kann ich Dir eine Mail schicken? Kannst ja Deine Adresse so à la "user (at) host dot com" hier posten, damit Du nicht so viel Spam kriegst. ;-)
mlc
Beiträge: 16
Registriert: 7. September 2006 10:44

Beitrag von mlc »

Hi,

ich habe versucht nach der Anleitung zu arbeiten doch leider ohne erfolg. :cry:

Erstmal die Ausgangslage:
QT = qt-win-opensource-src-4.1.4.zip
Patch = acs4qt414p1.zip
VS = VS C++ 2005 EXPRESS EDTION
SDK = Microsoft ® Windows Server® 2003 R2 Platform SDK

Bei Punkt 2. SDK installieren. Ist es egal wohin?? Habe später beim QT komplieren eine Error bekommen das er die Window.h nicht findet. Was muß ich den da vorher noch einstellen??

Gruß
mlc
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag von Volker »

Also erstmal die Anleitung (falls du meine meintest) bezieht sich nicht auf die Express Edition, was da evtl. noch an Extra Maßnahmen nötig sind weiss ich nicht.
Aber wenn er die windows.h nicht findet, dann geh ich mal davon aus, dass die INCLUDE Umgebungsvariable bei dir nicht gesetzt ist.

Gibt's bei VS05 Express auch einen Shortcut zum Command Prompt? Wenn ja, geh sicher, dass Du den aufgerufen hast bevor du versuchst QT zu kompilieren.
An sonsten müsste es auch gehen, wenn Du ne normale Shell startest, und dann die vcvars32.bat bzw. vsvars32.bat aufrufst, die irgendwo in deinem Visual Studio Installationsordner zu finden ist.
Du kannst überprüfen ob die INCLUDE Umgebungsvariable gesetzt ist, indem du am Prompt SET INCLUDE eingibst.
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Ich habe es gemäß meiner Anleitung in meiner Signatur mit der Express Edition installiert bekommen.
cesideem
Beiträge: 4
Registriert: 13. Oktober 2006 11:24

Beitrag von cesideem »

Shadow hat geschrieben: 1. Visual Studio 2005 Express downloaden und installieren, falls noch nicht vorhanden.

2. Platform SDK von Microsoft downloaden und installieren.

3. QT-WIN 4.1.1 OpenSource und Patch für V4.1.1 für Visual Studio 2005 downloaden. Dieser Patch funktioniert auch mit der Qt-Version 4.1.2.

4. QT 4.1.1 entpacken, anschließend den Patch entpacken und ins QT-Verzeichnis kopieren, z.B. in C:\Qt\4.1.1.

5. Visual Studio 8-Konsole öffnen, dort im QT-Verzeichnis "installpatch41.bat" ausführen, danach den Befehl "qconfigure.bat msvc2005" ausführen und viel Kaffee trinken gehen.

6. Ist der Patchvorgang incl. Configures komplett abgeschlossen, im Platform-SDK Verzeichnis die Datei"setenv.cmd" ausführen, um entsprechende INCLUDE-Umgebungsvariablen zu setzen. Die Konsole ruft im Unterverzeichnis SDK\V2.0\BIN die Batchdatei sdkvars.bat auf. Diese Datei enthält den Inhalt der zu setzenden Pfadangaben.

7. Jetzt die Qt-Umgebungsvariablen richtig setzen, wie z.B:
@set QMAKESPEC=win32-msvc2005
@set PATH=C:\Qt\4.1.1\bin;%PATH%
@set QTDIR=C:\Qt\4.1.1

8. Alle wichtigen Pfade aus Punkt 6 sind ebenfalls auch als INCLUDE und LIB-Pfade im VC 2005 Express unter "Extras -> Optionen" hinzuzufügen.

9. Existiert im Projektverzeichnis bislang noch keine PRO-Datei, diese folgendermaßen erzeugen:
qmake -project -o Project.pro "QT=core gui opengl" "TARGET=Project". Hierbei werden alle im Verzeichnis befindlichen und relevanten Dateien eingebunden.
Der Abschnitt "gui opengl" dient als Beispiel und ist optional, da hier lediglich projektbezogen noch entsprechende Libs eingetragen werden können, gegen welche später automatisch gelinkt werden.

10. Jetzt das gewünschte Projekt unter einer Visual Studio 8 konformen Konsole erstellen mit: qmake -tp vc -o [Projektname]. Unter dieser Konsole müssen alle relevanten Pfade zur SDK als auch die QT-Pfade wie o.a. gesetzt sein. Ich empfehle daher für die Entwicklung diese ganzen Pfade den festen Systemumgebungsvariablen hinzuzufügen bzw. zu speichern. ([WinXP]: Systemsteuerung >> System >> Erweitert >> "Starten und Wiederherstellen" >> Einstellungen).

11. Für eine regelmäßige Aktualisierung des Qt-Projektes sollte eine kleine Batch-Datei im Projektverzeichnis angelegt werden, die die Befehle von Punkt 9 und 10 nacheinander enthält. Bei Ausführung aktualisiert diese automatisch das ganze Projekt im Verzeichnis, inklusive neuer Ressourcen, u.s.w. Die Variante erspart zudem, dass umständliche Einstellungen für neu hinzugekommene Projektdateien im VC Express vorgenommen werden müssen.
Moin,

ich habe grad mal versucht, anhand dieser Anleitung Visual C++ Express & Qt Zum laufen zu bringen...

Folgendes hab ich bislang gemacht:
1. VSC++Express heruntergeladen & installiert
2. Platform SDK installiert & nach dieser Anleitung die Pfade in VSC++ gesetzt.
3. Hab Qt heruntergeladen, Patch drüberlaufen lassen
4. Pfade auch in $path von Windows gesetzt (vc\bin, sdk\include, sdk\lib)
5. neustart
6. VC-Konsole geöffnet -> qconfigure msvc2005

Und hier haut es mich mit nem Fehler raus:
../mkspecs/win32-msvc2005\qplatformdefs.h(30) : fatal error C1083: Datei (Includ
e) kann nicht geöffnet werden: "windows.h": No such file or directory
NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 8\VC\BIN\cl.EX
E"": Rückgabe-Code "0x2"
Stop.
Ja, ich hab die Suchfunktion benutzt... Und ich hab auch alles hier gelesen, was ich zu diesem Fehler gefunden hab... Aber trotzdem nix gefunden, was mir jetzt weiterhilft...
Entweder hab ich nen dicken Denk- und Vorgehensfehler drin, oder da ist noch etwas, was ich vergessen hab... :?
Hoffe auf Eure Hilfe...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Du hast 6. vergessen - LIB und INCLUDE sind noch nicht korrekt gesetzt
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
cesideem
Beiträge: 4
Registriert: 13. Oktober 2006 11:24

Beitrag von cesideem »

Christian81 hat geschrieben:Du hast 6. vergessen - LIB und INCLUDE sind noch nicht korrekt gesetzt
Dieser Punkt kommt aber erst NACH dem qconfigure-Befehl... Und meine Fehlermeldung kommt beim Ausführen eben dieses Befehls... D.h. bei mir läuft configure nicht korrekt bis zum Ende durch... Es reicht nichtmal zum Aufstehen, um den Kaffee zu holen, dann bricht er schon ab...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

cesideem hat geschrieben:
Christian81 hat geschrieben: Es reicht nichtmal zum Aufstehen, um den Kaffee zu holen, dann bricht er schon ab...
Dann ist es eben falsch! Hätte man ja einfach mal ausprobieren können anstatt hier solche Antworten zu schreiben... Es fehlen Dir diese beiden Umgebungsvariablen und fertig.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten