Qt ist zum einen Toolset zum Erstellen von Benutzeroberflächen in C++. Interessant ist Qt aber auch, weil man die damit erstellten Programme für verschiedene Betriebssysteme kompilieren kann. Eigene Programme können demnach auf Windows, Mac und Linux kompiliert und ausgeführt werden. Doch jedes Betriebssystem bringt seine eigenen Anforderungen mit. Da ich im Netz wenig darüber gefunden habe, gebe ich hier einige kurze Hinweise, wie man ein Projekt für mehrere Betriebssysteme fit machen kann. Weitere Tutorials werden folgen.

Betriebssysteme unter der Lupe

Jedes Betriebssystem hat seine Eigenarten. Kern eines ausführbaren Programms unter Windows ist bekanntermaßen die exe-Datei. Diese enthält neben dem Programmcode auch Ressourcen – in der Regel ist das zumindest das Programmicon der Datei. Programmbibliotheken, in Windows durch die Dateiendung dll erkennbar, sollten am besten im selben Verzeichnis wie die exe-Datei liegen, solange man diese nicht systemweit zur Verfügung stellen will.

Unter Mac sind Programme eigentlich Verzeichnisse mit der Endung .app. Diese müssen nach bestimmten Kriterien aufgebaut sein und enthalten neben der eigentlichen ausführbaren Datei alle Ressourcen und die benötigten Programmbibliotheken.

Linux- und Unix-Programme werden zumeist über mehrere Verzeichnisse im gesamten System verteilt. Grund dafür ist die Unix zugrunde liegende logische Struktur.

Dazu kommen diverse Installations- und Deinstalltionsmechanismen. Die Paketsysteme unter Linux sind äußerst ausgefeilt, die von Windows einigermaßen brauchbar. Unter Mac gibt es keine eigentliche Installation oder Deinstallation – man kann den App-Ordner an einen beliebigen Punkt im System speichern oder diesen löschen, mehr nicht!

Wer Qt-Programme für mehrere Betriebssysteme entwickeln will, muss diese Eigenheiten bedenken.

Die Projektdatei: Das Herz von Qt

Die wichtigste Datei in einem Qt-Projekt ist die Projektdatei mit der Endung .pro. Diese wird per qmake automatisch erstellt. Die Projektdatei kennt Betriebssystem-spezifische Weichen, die man wie folgt einstellen kann:

Wie man hier sehen kann, ist es eigentlich nicht so schwer, die grundlegenden Einstellungen vorzunehmen… Der Teufel liegt jedoch im Detail (Ich habe z.B. ewig gebraucht, um die richtigen Escape-Zeichen für die DEFINES bei Linux zu finden).

Dies war der erste Teil meines Qt-Tutorials. Im nächsten Teil werde ich auf die main-Funktion von C++ eingehen und zeigen, wie verschiedene Betriebssysteme die Übersetzungsdateien eines Programms finden können.