Ein QT4 Programm übersetzen - so geht´s

 

Mac OSX 10.7 Lion

Hier wird beschrieben, wie man sein System in einen Zustand bringt um in QT4 Geschriebene Programme kompilieren zu können. Diese kleine Einführung bezieht sich ausschliesslich auf die Open Source Edition von QT4!! Benutzung auf eigene Gefahr!

  1. 1.QT 4 hier runter laden. Diese Anleitung bezieht sich auf die .dmg Version von QT4, also die dmg Version runter laden! Ausserdem empfehle ich auch die Debug Bibliotheken zu installieren.

  2. 2.xCode installieren. Gibt es für Lion kostenlos im Mac App Store, für Snow Leopard leider kostenpflichtig.

  3. 3.Die dmg´s wie üblich mounten und per Doppelklick auf den Installer installieren. Wer QT4 mit Debug Bibliotheken installieren will installiert zuerst die „qt-mac-opensource-VERSION.dmg“ und danach „qt-mac-opensource-VERSION-debug-libs.dmg“.


QT4 ist jetzt fertig installiert. Die Schritte 1 bis 3 sind nur einmal notwendig.


  1. 4.Die Quellen des zu übersetzenden Programms entpacken.

  2. 5.Mit einer Konsole in den Ordner mit den Quellen wechseln.

  3. 6.Auf der Konsole


   qmake


bzw.


    qmake -config release


eingeben.

  1. 7.Das dadurch erzeugte xCode Projekt per Doppelklick öffnen und auf „build“ klicken. Wenn der Vorgang scheitert kann ein zweiter Anlauf (nochmal auf „build“ klicken) oft das Problem lösen. Hinweis: Zur Zeit gibt es Probleme mit den Projekt Dateien die qmake ausspuckt. XCode 4 crasht beim öffnen des Projekts. Um das Problem zu umgehen ist es nötig über die Sicherung einer XCode 3 Installation zu verfügen. Wenn man die Projekt Datei einmal mit XCode 3 öffnet lässt sich die Projekt Datei anschliessend ohne Probleme in XCode 4 öffnen! Alternative ist es Möglich statt XCode den QT Creator zu verwenden. Ich werde hier Zukünftig, sobald ich mich eingehend mit dem QT Creator beschäftigt habe diesen Weg beschreiben.

  2. 8.Wenn alles geklappt hat befindet sich nun ein fertiges Binary im Ordner. Einfach per Doppelklick starten.

  3. 9.Damit auch jemand, der QT4 nicht installiert hat das Binary ausführen kann ist es nötig die QT Bibliotheken zu integrieren. Dies geschieht mittels


    macdeployqt BINARY.app        (BINARY durch den Namen des Binarys ersetzen)

Linux

Windows XP / Windows 7

Der einfachste Weg unter Linux QT4 zu installieren ist, einfach die vom Distributor mitgelieferte Version über den Paketemanager zu installieren. In dem Fall sollte QT4 dann auch direkt korrekt ins System eingebunden sein. Um sichergehen das das korrekte qmake benutzt wird (es können durchaus mehrere Versionen installiert sein) einfach


qmake --version


eingeben. An der Ausgabe lässt sich ablesen, zu welcher QT Version qmake gehört.


QMake version 2.01a

Using Qt version 4.4.0 in /usr/lib64


Hier wird z.b. ein QT 4.4.0 benutzt das in /usr/lib liegt.


Wer die allerneuste Version haben will muss sie aus den Quellen übersetzen und installieren. Die Quellen gieb´t es hier zum Download.


Um QT4 übersetzen zu können muss man über den Paketmanager die Grundsätzlichen Entwicklerwerkzeuge wie z.b. GCC und make installieren, und je nach Funktionen, die man verwenden will diverse Entwicklerpakete. Ausserdem muss man selbst dafür sorgen, das qmake vom System gefunden wird, sonst muss man immer den kompletten Pfad zu qmake eingeben, was nicht besonders lustig ist. Näheres dazu in der Dokumentation von QT4 oder in so ziemlich jedem Buch über QT4. Zu kompliziert? Dann nimm einfach die vom Distributor mitgelieferte Version, die ist mit wenigen Mausklicks über den Paketmanager installiert.


QT4 ist jetzt fertig installiert. Dies ist nur einmal nötig.


Die Quellen des zu übersetzenden Programms Entpacken.


Mit einer Konsole in den Ordner mit den Quellen wechseln.


Auf der Konsole


    qmake


eingeben. Das erzeugt das makefile für Linux.


Danach auf der Konsole


    make


eingeben. Dadurch wird das Binary erstellt. Das fertig kompilierte Programm wie gewohnt per Doppelklick starten, fertig.

  1. 1.Zunächst QT4 hier Runterladen. Es wird davon ausgegangen das die .exe Version mit mingw im vorgegebenen Pfad installiert wird.

  2. 2.Die soeben Runtergeladene Datei per Doppelklick starten und am besten so wie alles vorgegeben wird installieren.

  3. 3.Jetzt muss man noch dafür sorgen, das das System bei der Ausführung der Programme die benötigten dll Dateien findet. Innerhalb des QT Verzeichnisses gibt es ein Unterverzeichnis mit der Versions Bezeichnung, das wiederum ein Verzeichnis mit dem Namen qt enthält, das ein Unterverzeichnis mit dem Namen bin enthält. In diesem Verzeichnis befinden sich alle benötigten dll Dateien. Bei der Aktuellen Version ist es Beispielsweise


    C:\Qt\2009.02\qt\bin\


    Dieses Verzeichnis muss ganz am Ende von Path angefügt werden. Die einzelnen Einträge

    müssen durch Semikolons getrennt werden, hinter dem letzten Eintrag soll kein Semikolon

    stehen. Beim bearbeiten von Path muss man sehr gut aufpassen, was man tut. Hier einen

    Fehler zu machen wäre möglicherweise Katastrophal !

QT4 ist jetzt fertig installiert. Die Schritte 1 bis 4 sind nur einmal notwendig.


5. Die Quellen des zu übersetzenden Programms Endpacken.

6. Mit der QT Konsole in den Ordner mit den Quellen wechseln.

7. Auf der QT Konsole


   qmake


eingeben. Das erzeugt das makefile für Windows.

8. Auf der Konsole


   mingw32-make release


eingeben. Dadurch wird das Binary (oder sollte ich sagen exe) erstellt. Das fertig kompilierte Programm wie gewohnt per Doppelklick starten, fertig.


9. Damit das fertig kompilierte Programm auch von jemanden ausgeführt werden kann, der QT4 nicht installiert hat ist es nötig QT Bibliotheken in das Programm zu integrieren. Alle benötigten Dateien und Verzeichnisse befinden sich im bin Ordner der QT4 Installation. Einfach die fertig kompilierte .exe in einen Ordner zusammen mit den benötigten .dll Dateien packen.

Meistens reichen folgende:


libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll und QtGui4.dll.


Gegebenenfalls ist es auch nötig Plugins aus dem Plugin Ordner zu integrieren, zum Beispiel wenn man in einem Programm .gif Dateien verwendet das „imageformats“ Plugin.