Anleitung um QT 4 Applikationen mit Visual Studio .NET 2003 /Visual C++ 2005 (auch Express)* erstellen und kompilieren zu können
*Es sind auch andere Visual Studio / Visual C++ Versionen möglich, dieses jedoch nicht getestet

ACHTUNG: Aktualisiert am 22.06.2008
22.06.2008
Neues vorkompiliertes QT in Version 4.4.0 (OpenSource) zum Download verfügbar. Diesmal zusätzlich mit Debug Bibliotheken.
02.05.2008
Laut einem Leser funktioniert mit QT 4.3.4 auch das Compilen mit Visual Studio Express 2005 mit SP1, daher Hinweis entfernt.
05.04.2008
Für QT Versionen ab 4.3.3 hat Trolltech entschieden, den Benutzern von QT OpenSource für Windows das Erstellen von QT für die VisualC++/Visual Studio Reihe zu vereinfachen und den Konfigurationsprozess zu integrieren. Daher ist ab der Version 4.3.3 nicht mehr der Patch von QTWin nötig.

Quelle

Inhaltsverzeichnis:

QT4 runterladen, konfigurieren, kompilieren
1. Einleitung
2. Benötigte Software (sowie vorkompiliertes QT)
3. Entpacken & Patch einspielen
4. Umgebungsvariabeln
5. Kompilieren
6. Aufräumen
7.
Abschluss & Backup

Entwickeln in Visual Studio .NET 2003
(fertiges QT4 für VS2003 vorhanden)
1. Schritt - Konsole öffnen
2. Schritt - Projektdateien erzeugen
3. Schritt - Visual Studio Projekt erzeugen
4. Batch Datei erstellen

Beispielprogramm

Links
Kontakt

Einleitung

Während die kommerzielle Version von QT4 sich bereits selber komplett in Visual Studio integrieren kann, kann man mit der OpenSource, also der - für OpenSource und Lernprojekte kostenlosen - Version von QT höchstens den Editor von VS2003 nutzen. Diesem fehlen hier aber die nützlichsten Funktion wie z.B. die Codevervollständigung. Kompilieren lassen sich QT Projekte ausserdem standardmäßig nur mit dem MinGW Compiler, welcher sich ebenfalls nicht in Visual Studio integrieren lässt. Debuggen wird hier ebenfalls nahezu unmöglich.

Daher hier nun eine kurze Anleitung mit der sich Visual Studio .NET 2003 zum editieren (mit alle Extras) sowie zum kompilieren, linken und debuggen nutzen lässt, da dies garnicht so schwierig- und der Nutzen groß ist.

Meine ursprünglichen Informationen habe ich übrigens aus einem deutschsprachigen Tutorial von der UNI Augsburg. In diesem wird der Vorgang des Kompilierens und das Erstellen eines Projektes und Visual Studio noch genauer und mit einigen Beispielen beschrieben. [Link zum Tutorial]


Benötigte Software

1. entweder: Microsoft(R) Visual Studio / Visual C++ .NET 2003 (Visual C++ installiert) ;-)
           oder: Microsoft(R) Visual Studio / Visual C++ 2005
           oder: Microsoft(R) Visual C++ 2005 Express von microsoft.com [Link] (mindestens 60MB)*
2. QT 4.x OpenSource Version mit Sourcen von trolltech.com (Nicht die vorkompilierte mit Setup für MinGW!!!) [Link] (Dateiname: qt-win-opensource-src-4.xxxx.zip ca. 34MB)
3. [Nur noch bei QT Versionen < 4.3.3 notwendig]
    "Advanced Compiler Support" von der QTWin Projektseite (Darauf achten dass die Version zu eurer QT4 Version passt!!) [Link] (Dateiname: acs4qt4xxp1.zip ca. 160kb)
* Für Visual C++ 2005 Express sollte auch noch das Microsoft(R) Windows Platform SDK von microsoft.com runtergeladen werden!! [Link] (ca. 100 - 400MB)

Statt 2. + 3. Für Visual Studio 2003.NET vorkompiliertes QT von 321soft.de [Link] (Dateiname: qt440.rar 160MB) Version: 4.4.0 für Visual Studio 2003.NET mit Debug-Librarys, Qmake und VCPROJ Dateien *
* Das vorkompilierte Archiv ist sinnvoll wenn ihr einen langsamen Rechner habt oder euch das Kompilieren sparen wollt bzw. sofort anfangen wollt zu entwickeln. Nachteil: Der Download ist um ein vielfaches größer     und die Version ist evtl. nicht die aktuellste von Trolltech.com.
 


Alles entpacken und Patch einspielen
(Wenn ihr euch das vorkompilierte QT (siehe benötigte Software) von 321soft.de geladen habt, müsst ihr die RAR Datei einfach nur in ein Verzeichnis (am besten C:\qt4) entpacken und zum nächsten Schritt gehen)

Zunächst entpackt ihr das ZIP Archiv mit den QT4 Sourcen welches ihr eben geladen habt. Ideal wäre ein kurzer Pfad, da dies Tippaufwand bei den nächsten Schritten spart. Ich nehme in diesem Tutorial mal an, dass ihr das Archiv nach C:\qt4 entpackt habt. Achtet unbedingt darauf, dass euer Entpacker keinen zusätzlichen Unterordner mit Namen des ZIP Archives erstellt (z.B. C:\qt4\qt-win-opensource-src-4.1.4\).
[Der folgende Schritt ist nur noch für QT Versionen < 4.3.3 erforderlich] Nun führt ihr die Datei installpatch4x.bat in eurem QT4 Ordner aus. Ist sie nicht da hat euer Entpackprogramm die Dateien in den Unterordner acs4....\ entpackt. In diesem Fall die Dateien einen Ordner höher schieben. Der Patch (die Batchdatei) schreibt nun ein wenig an den QT Projektdateien herum. Danach kanns auch fast(!) an's Compilen gehen :-)


Umgebungsvariablen Anlegen

Drückt nun die Windows Taste + Pause (oder wenn ihr ein hoffnungsloser Windows-Tastaturen Endgegner seit, oder die Taste aus Wut beim zocken rausgebrochen habt, klickt mit rechts auf den Arbeitsplatz und dann auf Eigenschaften ;-) ). Wechselt auf den Tab "Erweitert" und klickt dort auf den Button "Umgebungsvariablen".

Unter Systemvariablen (nicht die Benutzervariablen -> Visual Studio verwendet u.a. einen extra Benutzer zum Debuggen) wird nun folgende Variablen angelegt (Klick auf "Neu"):

Name Wert Neu/Ändern
QTDIR C:\qt4 neu anlegen
QMAKESPEC win32-msvc.net (Visual Studio 2003 .NET)
win32-msvc2005 (Visual C++ 2005)
(Weitere Möglichkeiten s. C:\qt4\mkspecs)
neu anlegen
PATH C:\qt4\bin ergänzen
INCLUDE C:\qt4\include ergänzen
LIB  C:\qt4\lib ergänzen

QMAKESPEC: Hier schreibt ihr rein nach welchem Template qmake später die Projektdateien erstellen soll. In diesem Tutorial schreiben wir "win32-msvc.net" rein welches qmake dazu veranlasst eine Visual Studio 2003.net Projektdatei (.vcproj) zu erstellen. Um zu sehen welche Templates noch möglich sind (z.B. Visual Studio 2005, Borland, G++ usw.) müsst ihr nur mal in den Ordner C:\qt4\mkspecs schauen und z.B. msvc2005 für Visual C++ 2005 eintragen.


 

QT4 kompilieren
(Wenn ihr euch das vorkompilierte QT (siehe benötigte Software) von 321soft.de geladen habt, könnt ihr diesen Schritt überspringen)

Jetzt geht es daran, QT4 zu kompilieren damit ihr es hinterher benutzen könnt. Als allererstes solltet ihr euch vergewissern, dass ihr an dem schnellsten Rechner sitzt, den ihr im Haus habt. Der gesamte Vorgang (Projektdateien erstellen, Kompilieren und Linken) hat auf meinem System (Pentium 4 3,00Ghz, 1GB RAM und einem Raid0 Verbund) etwas mehr als eine Stunde gebraucht. Ausserdem solltet ihr mindestens noch 2GB auf der Festplatte unter der ihr QT entpackt habt frei haben. Der meiste Platz geht für Temp-Dateien drauf, welche beim kompilieren erstellt werden, danach aber wieder gelöscht werden können.
Startet nun die Visual Studio .NET 2003 Eingabeaufforderung. Diese findet ihr im Startmenü unter Microsoft Visual Studio .NET 2003 und dort unter Tools.

 

[Schritt für QT Versionen >= 4.3.3]

Ruft im QT Verzeichnis die Datei configure.exe mit dem Parameter "-help" auf. Ihr erhaltet eine Liste mit allen möglichen Optionen die QT beim compilen berücksichtigen soll. z.B. ob bestimmte Plugins mit eingelinkt werden sollen usw.
Eine mögliche Konfiguration wäre folgende: configure -release -qmake -platform %QMAKESPEC% Dies bewirkt dass QT für für euer eingesetztes Visual C++/Visual Studio (was ihr vorher bei den Umgebungsvariablen angegeben habt), ohne Debug Support und mit QMAKE (welches unbedingt benötigt wird) compiled wird. Was ihr nun noch für Zusatz Plugins usw. benötigt müsst ihr selbst entscheiden.

[Schritt für QT Versionen < 4.3.3]

Der Patch den ihr eben eingespielt habt, hat euch eine neue Batch Datei erzeugt. Die qconfigure.bat. Diese übernimmt nun etwas Vorarbeit (z.B. setzen von weiteren Systemvariabeln usw.) und startet schliesslich die originale configure.exe mit den entsprechenden Parametern.
Ruft nun also aus dem VS2003 Command Promt die Datei wie folgt auf: C:\qt4>qconfigure msvc.net

Zu Anfang müsst ihr der GNU Lizenz mit "Y" zustimmen. Auch werdet ihr je nach Patch Version vor bestimmten wichtigen Schritten nochmal um eure Zustimmung mit "Y" gebeten. Dabei solltet ihr immer nach Fehlermeldungen in der Batch ausgabe ausschau halten und diese beheben bevor ihr alles bestätigt.
Nachdem die Batch durchgelaufen ist und alle Make-Dateien erstellt hat, ruft ihr als nächstes einfach nur noch "nmake" auf. Jetzt könnt ihr eigentlich kaffetrinken oder etwas spazieren gehen, dieser Schritt dauert am längsten ;-)

 

Gäääääähn....

 

Stunden später... (Die Warning interessiert nicht weiter, wichtig ist, dass nicht mit einem Error abgebrochen wurde). Nun habt ihr die QT Bibliotheken und alle (bereits bekannten) Hilfsprogramme von QT selbst kompiliert (z.B. den Designer oder den Assistant). Die Verknüpfungen im Startmenü oder Desktop zum Designer etc. müsst ihr natürlich selbst anlegen (ich rufe jedoch immer "designer" oder "assistant" über Start->Ausführen auf, da der Qt4 Ordner sowieso in der PATH Variable steht).

 

Aufräumen,

Wie oben erwähnt werden beim compilieren ein paar GigaByte Temp Dateien erstellt die man nun wieder löschen kann (oder wenn man faul ist und genug Platz hat da lassen kann, in diesem Fall diesen Schritt überspringen).
Nmake kann seinen Müll mit dem Parameter "clean" selber löschen, leider werden dabei auch noch benötigte LIB Dateien gelöscht.
Kopiert also das Verzeichnis C:\qt4\lib auf euren Desktop. Führt dann im Command Promt C:\qt4>nmake clean aus. Kopiert nun die Sicherung vom Ordner lib auf eurem Desktop wieder dahin wo ihr sie her habt.

So das erstellen der QT4 Module wäre nun abgeschlossen. Jetzt kann's an das Entwickeln im Visual Studio gehen.
Ihr solltet euch aber das fertig kompilierte QT4 Verzeichnis irgendwo sichern, z.B. auf CD, da ihr es sonst jedesmal neu kompilen müsst wenn ihr euer Windows neu aufsetzt oder an einem anderen PC entwickeln wollt.
So könnt ihr an allen PCs an denen mit Visual Studio .NET 2003 entwickelt werden soll den QT4 Ordner wieder einkopieren und müsst nur noch die Umgebungsvariabeln neu setzen.
TIP: Der QT4 Ordner wird um vielfaches kleiner wenn ihr in ZIPt da er sehr viele kleine Dateien enthält.

 

Entwicklung unter Visual Studio .NET 2003

Dieser Schritt ist mittlerweile denkbar einfach geworden. Wer dieses Tutorial früher schonmal gelesen hat, oder das oben verlinkte Tutorial von der Uni Augsburg liest, wird sich wundern dass das Tutorial wesentlich weniger Text und Bilder umfasst wie vorher ;-)

1. Schritt - Konsole öffnen
Ihr öffnet wie zuvor beim kompilieren von QT (wer es selbst gemacht hat) die Visual Studio 2003 .NET Eingabeaufforderung.

Hier wechselt ihr nun in das Verzeichnis in dem die Quellcodes eures QT Projektes liegen, welches ihr ab jetzt in Visual Studio weiterbearbeiten wollt.

2. Schritt - Projektdatei erzeugen
Gebt hier nun die Zeile "
qmake -project -t vcapp" ein. Wenn ihr statt einer Anwendung (.exe) eine Library (dll) erstellen wollt gebt ihr statt vcapp vclib an. Qmake erstellt nun die altbekannte .pro Projektdatei jedoch mit dem Vermerk "vcapp" bei TEMPLATES.

3. Schritt - Visual Studio Projektdatei erzeugen
Gebt nun einfach "
qmake -tp vc" ein. Ab jetzt findet ihr in eurem Projektverzeichnis eine Datei mit der Endung .vcproj welche ihr nun mit Visual Studio 2003 .NET öffnen könnt. Das war's eigentlich schon.

Visual Studio kennt nun schon alle SourceFiles (.cpp), HeaderFiles (.h), FormFiles (.ui) und RessourceFiles (.qrc). Das Projekt sollte sich nun bereits ganz normal aus dem Visual Studio erstellen lassen. Die Header, UI, und QRC Files besitzen auch schon die "Benutzerdefinierten Buildschritte" die man vorher bei jeder neuen Datei manuell in Visual Studio hinzufügen musste. Die Buildschritte kann man sich ansehen, indem man mit rechts auf die Header oder UI-Datei klickt, Eigenschaften wählt und dann bei "Benutzerdefinierte Buildschritte" guckt. In den Projekteigenschaften sind ebenfalls bereits die benötigten QT Libraries hinterlegt.

Batch Datei erstellen zum einfachen Projekt erstellen

Für das erstellen der Projektdatei habe ich mir allerdings eine kleine BATCH Datei namens "vmake.bat" erstellt, welche das Erstellen des .pro Files mit QTNetwork Support, sowie das Erstellen des Visual Studio Projekt Files (.vcproj) übernimmt. Diese Batch Datei wird einfach im QT Bin-Verzeichnis (C:\qt4\bin) gespeichert. Jedesmal wenn neue Forms oder Ressourcen zum Projekt hinzukommen, oder ich ein neues Projekt anfange rufe ich aus der Visual Studio Eingabeaufforderung im Projektordner einfach nur "vmake app" oder "vmake lib" auf und lade das Projekt in Visual Studio neu (bzw. macht es das Studio selbst). So ist das Arbeiten mit QT meiner Meinung nach am komfortabelsten :-)

Die Batch Datei sieht folgendermaßen aus:

vmake.bat

@echo off
IF "%1" == "" GOTO err
qmake -project -t vc%1 "QT+=network"
qmake -tp vc
GOTO end

:err
echo Bitte als Parameter "app" oder "lib" angeben !!

:end


 

Wenn nun alles richtig ist, können wir das gesamte Projekt neu erstellen (Rechtsklick auf Projekt im Projektmappen Explorer und auf "Neu erstellen"). Es sollte dann folgendes Ausgegeben werden :-) :

 

Beispielprogramm:

An Beispielen kann man meiner Meinung nach am besten lernen und sich alles in Ruhe angucken. Daher hier mal ein Visual Studio .NET 2003 Projekt indem eine einfache QT GUI angezeigt wird.
[DOWNLOAD]
 


Nützliche Links:

- Trolltech Produkt-Webseite: http://www.trolltech.com/products/qt
- QTWin Projektseite: http://sourceforge.net/projects/qtwin
- Google: http://www.google.de/ (Das ist nicht wieder so ein blödgemeinter "RTFM" Hinweis, es finden sich sehr sehr viele Artikel zu QT da es viele Entwickler gibt die QT benutzen)
- Tutorial der UNI Augsburg http://mm-werkstatt.informatik.uni-augsburg.de/documents/tutorials/qt2003.pdf#search=%22QT%20unter%20Windows%20und%20Visual%20Studio%22 


Fragen, Fehler, Anregungen KONTAKT ?

In so einer Anleitung hat man schnell mal eine Kleinigkeit vergessen oder einfach für so selbstverständlich gehalten dass man diese garnicht reinschreibt.
Sollte irgendwas nicht klappen, euch irgendein Grober Fehler auffallen, oder irgendetwas fehlen was ihr euch mühsam selbst ausarbeiten musstet. BITTE SCHREIBT ES MIR !!!
Vieleicht wisst ihr für einige Schritte auch intelligentere Lösungen - Ich will's wissen ;-)

Kontakt könnt ihr mit mir über das Kontaktformular auf http://www.321soft.de aufnehmen oder direkt eine Mail an info at 321soft dot de schreiben.

 

Copyright (C) 2006 Jan Stuhlmann (321soft.de)