Plattform Hinweise
Viele plattformübergreifende Projekte können mit den grundlegenden Konfigurationsfunktionen von qmake bearbeitet werden. Auf einigen Plattformen ist es jedoch manchmal nützlich oder sogar notwendig, die Vorteile plattformspezifischer Funktionen zu nutzen. qmake kennt viele dieser Funktionen, auf die über spezielle Variablen zugegriffen werden kann, die nur auf den Plattformen wirksam werden, für die sie relevant sind.
macOS, iOS, tvOS und watchOS
Zu den plattformspezifischen Funktionen gehört die Unterstützung für die Erstellung von universellen Binärpaketen, Frameworks und Bundles.
Quell- und Binärpakete
Die in Quellpaketen enthaltene Version von qmake ist etwas anders konfiguriert als die in Binärpaketen enthaltene, da sie eine andere Funktionsspezifikation verwendet. Während das Quellpaket typischerweise die macx-g++
Spezifikation verwendet, ist das Binärpaket typischerweise so konfiguriert, dass es die macx-xcode
Spezifikation verwendet.
Benutzer eines jeden Pakets können diese Konfiguration außer Kraft setzen, indem sie qmake mit der Option -spec
aufrufen (siehe Ausführen von qmake für weitere Informationen). Um zum Beispiel qmake aus einem Binärpaket zu verwenden, um ein Makefile in einem Projektverzeichnis zu erstellen, rufen Sie den folgenden Befehl auf:
qmake -spec macx-g++
Verwendung von Frameworks
qmake ist in der Lage, automatisch Build-Regeln für das Linken gegen Frameworks im Standard-Framework-Verzeichnis auf macOS zu erzeugen, das sich unter /Library/Frameworks/
befindet.
Andere Verzeichnisse als das Standard-Framework-Verzeichnis müssen dem Build-System angegeben werden. Dies wird erreicht, indem Linker-Optionen an die LIBS-Variable angehängt werden, wie im folgenden Beispiel gezeigt:
LIBS += -F/path/to/framework/directory/
Das Framework selbst wird durch Anhängen der Optionen -framework
und des Namens des Frameworks an die LIBS-Variable eingebunden:
LIBS += -framework TheFramework
Erstellen von Frameworks
Jedes beliebige Bibliotheksprojekt kann so konfiguriert werden, dass die resultierende Bibliotheksdatei in einem Framework platziert wird, das für die Bereitstellung bereit ist. Richten Sie dazu das Projekt so ein, dass es die Vorlagelib
verwendet, und fügen Sie die Option lib_bundle
zur CONFIG-Variablen hinzu:
TEMPLATE = lib CONFIG += lib_bundle
Die mit der Bibliothek verbundenen Daten werden mit der Variable QMAKE_BUNDLE_DATA angegeben. Diese Variable enthält Elemente, die mit einem Bibliotheks-Bundle installiert werden, und wird oft verwendet, um eine Sammlung von Header-Dateien anzugeben, wie im folgenden Beispiel:
FRAMEWORK_HEADERS.version = Versions FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h FRAMEWORK_HEADERS.path = Headers QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
Sie verwenden die Variable FRAMEWORK_HEADERS
, um die Header anzugeben, die von einem bestimmten Framework benötigt werden. Durch das Anhängen an die Variable QMAKE_BUNDLE_DATA
wird sichergestellt, dass Informationen über diese Header der Sammlung von Ressourcen hinzugefügt werden, die mit dem Library-Bundle installiert werden. Außerdem werden der Name und die Version des Frameworks durch die Variablen QMAKE_FRAMEWORK_BUNDLE_NAME und QMAKE_FRAMEWORK_VERSION angegeben. Standardmäßig werden die für diese Variablen verwendeten Werte aus den Variablen TARGET und VERSION bezogen.
Weitere Informationen über die Bereitstellung von Anwendungen und Bibliotheken finden Sie unter Qt für macOS - Bereitstellung.
Erstellen und Verschieben von Xcode Projekten
Unter macOS können Entwickler Xcode-Projektdateien aus einer bestehenden qmake-Projektdatei erzeugen. Ein Beispiel:
qmake -spec macx-xcode project.pro
Hinweis: Wenn ein Projekt später auf der Festplatte verschoben wird, muss qmake erneut ausgeführt werden, um die Projektdatei zu verarbeiten und eine neue Xcode-Projektdatei zu erstellen.
Gleichzeitige Unterstützung von zwei Build-Targets
Dies zu implementieren ist derzeit nicht möglich, da das Xcode-Konzept der Active Build Configurations sich konzeptionell von der qmake-Idee der Build-Targets unterscheidet.
Die Xcode Active Build Configurations-Einstellungen dienen zum Ändern von Xcode-Konfigurationen, Compiler-Flags und ähnlichen Build-Optionen. Im Gegensatz zu Visual Studio erlaubt Xcode nicht die Auswahl bestimmter Bibliotheksdateien, je nachdem, ob Debug- oder Release-Build-Konfigurationen ausgewählt werden. Die qmake Debug- und Release-Einstellungen steuern, welche Bibliotheksdateien mit der ausführbaren Datei verknüpft werden.
Es ist derzeit nicht möglich, Dateien in den Xcode-Konfigurationseinstellungen aus der von qmake generierten Xcode-Projektdatei zu setzen. Die Art und Weise, wie die Bibliotheken in der Phase Frameworks & Bibliotheken im Xcode-Build-System gelinkt werden.
Außerdem wird die ausgewählte Active Build Configuration in einer .pbxuser Datei gespeichert, die von Xcode beim ersten Laden generiert und nicht von qmake erstellt wird.
Windows
Zu den plattformspezifischen Funktionen gehören die Unterstützung von Windows-Ressourcendateien (bereitgestellt oder automatisch generiert), die Erstellung von Visual Studio-Projektdateien und die Handhabung von Manifestdateien bei der Bereitstellung von Qt-Anwendungen, die mit Visual Studio 2005 oder höher entwickelt wurden.
Hinzufügen von Windows Ressourcendateien
Dieser Abschnitt beschreibt, wie man eine Windows-Ressourcendatei mit qmake behandelt, um sie mit einer ausführbaren Anwendung (EXE) oder einer dynamischen Linkbibliothek (DLL) zu verknüpfen. qmake kann optional eine entsprechend gefüllte Windows-Ressourcendatei automatisch generieren.
Eine gelinkte Windows-Ressourcendatei kann viele Elemente enthalten, auf die von der EXE oder DLL aus zugegriffen werden kann. Das Qt-Ressourcensystem sollte jedoch für den plattformunabhängigen Zugriff auf eingebundene Ressourcen verwendet werden. Auf einige Standardelemente der eingebundenen Windows-Ressourcendatei wird jedoch von Windows selbst zugegriffen. So wird beispielsweise im Windows-Explorer die Registerkarte Version der Dateieigenschaften mit Ressourcenelementen gefüllt. Darüber hinaus wird das Programmsymbol der EXE aus diesen Elementen gelesen. Es ist also eine gute Praxis für eine mit Qt erstellte Windows EXE oder DLL, beide Techniken gleichzeitig zu verwenden: plattformunabhängige Ressourcen über das Qt-Ressourcensystem zu verknüpfen und Windows-spezifische Ressourcen über eine Windows-Ressourcendatei hinzuzufügen.
Typischerweise wird ein Skript zur Ressourcendefinition (.rc-Datei) zu einer Windows-Ressourcendatei kompiliert. Innerhalb der Microsoft-Toolchain erzeugt das RC-Tool eine .res-Datei, die mit dem Microsoft-Linker zu einer EXE oder DLL gelinkt werden kann. Die MinGW-Toolchain verwendet das windres-Tool, um eine .o-Datei zu erzeugen, die mit dem MinGW-Linker zu einer EXE oder DLL gelinkt werden kann.
Die optionale automatische Generierung einer entsprechend gefüllten .rc-Datei durch qmake wird durch Setzen von mindestens einer der Systemvariablen VERSION und RC_ICONS ausgelöst. Die erzeugte .rc-Datei wird automatisch kompiliert und gelinkt. Die Elemente, die in die .rc-Datei hinzugefügt werden, werden durch die Systemvariablen QMAKE_TARGET_COMPANY, QMAKE_TARGET_DESCRIPTION, QMAKE_TARGET_COPYRIGHT, QMAKE_TARGET_PRODUCT definiert, QMAKE_TARGET_ORIGINAL_FILENAME, QMAKE_TARGET_INTERNALNAME, QMAKE_TARGET_COMMENTS, QMAKE_TARGET_TRADEMARKS, QMAKE_MANIFEST, RC_CODEPAGE, RC_ICONS, RC_LANG und VERSION.
Falls diese Elemente nicht ausreichen, verfügt qmake über die beiden Systemvariablen RC_FILE und RES_FILE, die direkt auf eine extern erstellte .rc- oder .res-Datei verweisen. Durch Setzen einer dieser Variablen wird die angegebene Datei mit der EXE oder DLL gelinkt.
Hinweis: Die Erzeugung der .rc-Datei durch qmake wird blockiert, wenn RC_FILE oder RES_FILE gesetzt ist. In diesem Fall werden von qmake keine weiteren Änderungen an der angegebenen .rc-Datei oder der .res- oder .o-Datei vorgenommen; die Variablen, die sich auf die Erzeugung der .rc-Datei beziehen, haben keine Wirkung.
Erstellen von Visual Studio Projektdateien
Dieser Abschnitt beschreibt, wie man ein bestehendes qmake-Projekt in Visual Studio importiert. qmake ist in der Lage, aus einer Projektdatei ein Visual-Studio-Projekt zu erstellen, das alle notwendigen Informationen enthält, die die Entwicklungsumgebung benötigt. Dies wird erreicht, indem die qmake-Projektvorlage entweder auf vcapp
(für Anwendungsprojekte) oder vclib
(für Bibliotheksprojekte) gesetzt wird.
Dies kann z.B. auch über eine Kommandozeilenoption eingestellt werden:
qmake -tp vc
Es ist möglich, rekursiv .vcproj
Dateien in Unterverzeichnissen und eine .sln
Datei im Hauptverzeichnis zu erzeugen, indem man eingibt:
qmake -tp vc -r
Jedes Mal, wenn Sie die Projektdatei aktualisieren, müssen Sie qmake ausführen, um ein aktualisiertes Visual Studio-Projekt zu erzeugen.
Hinweis: Wenn Sie das Visual Studio Add-in verwenden, wählen Sie Qt > Import from .pro file, um .pro
Dateien zu importieren.
Visual Studio Manifest-Dateien
Wenn Sie Qt-Anwendungen bereitstellen, die mit Visual Studio 2005 oder später erstellt wurden, stellen Sie sicher, dass die Manifestdatei, die beim Verknüpfen der Anwendung erstellt wurde, korrekt behandelt wird. Für Projekte, die DLLs generieren, wird dies automatisch gehandhabt.
Das Entfernen der Manifest-Einbettung für ausführbare Anwendungen kann mit der folgenden Zuweisung an die CONFIG-Variable durchgeführt werden:
CONFIG -= embed_manifest_exe
Auch die manifeste Einbettung für DLLs kann mit der folgenden Zuweisung an die Variable CONFIG
entfernt werden:
CONFIG -= embed_manifest_dll
Dies wird im Deployment-Guide für Windows ausführlicher behandelt.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.