qmake konfigurieren
Eigenschaften
qmake verfügt über ein System zur persistenten Konfiguration, das es Ihnen erlaubt, eine Eigenschaft in qmake einmal zu setzen und sie jedes Mal abzufragen, wenn qmake aufgerufen wird. Sie können eine Eigenschaft in qmake wie folgt setzen:
qmake -set PROPERTY VALUE
Die entsprechende Eigenschaft und der Wert sollten durch PROPERTY
und VALUE
ersetzt werden.
Sie können diese Informationen wie folgt von qmake abrufen:
qmake -query PROPERTY qmake -query #queries all current PROPERTY/VALUE pairs
Hinweis: qmake -query
listet die eingebauten Eigenschaften zusätzlich zu den Eigenschaften auf, die Sie mit qmake -set PROPERTY VALUE
setzen.
Diese Informationen werden in einem QSettings Objekt gespeichert (d.h. sie werden für verschiedene Plattformen an unterschiedlichen Stellen gespeichert).
Die folgende Liste fasst die built-in
Eigenschaften zusammen:
- QMAKE_SPEC - der Kurzname des Hosts
mkspec
, der während eines Host-Builds aufgelöst und in der Variable QMAKESPEC gespeichert wird - QMAKE_VERSION - die aktuelle Version von qmake
- QMAKE_XSPEC - der Kurzname des Ziels
mkspec
, der aufgelöst und in der QMAKESPEC-Variable während eines Ziel-Builds gespeichert wird - QT_HOST_BINS - Speicherort der ausführbaren Host-Dateien
- QT_HOST_DATA - Speicherort der Daten für ausführbare Host-Dateien, die von qmake verwendet werden
- QT_HOST_LIBS - Speicherort der Host-Bibliotheken
- QT_HOST_LIBEXECS - Speicherort der ausführbaren Dateien, die von Host-Bibliotheken zur Laufzeit benötigt werden
- QT_HOST_PREFIX - Standard-Präfix für alle Host-Pfade
- QT_INSTALL_ARCHDATA - Speicherort der allgemeinen architekturabhängigen Qt-Daten
- QT_INSTALL_BINS - Speicherort der Qt-Binärdateien (Werkzeuge und Anwendungen)
- QT_INSTALL_CONFIGURATION - Speicherort für Qt-Einstellungen. Nicht anwendbar auf Windows
- QT_INSTALL_DATA - Speicherort für allgemeine, architekturunabhängige Qt-Daten
- QT_INSTALL_DOCS - Speicherort für die Dokumentation
- QT_INSTALL_EXAMPLES - Speicherort für Beispiele
- QT_INSTALL_HEADERS - Speicherort für alle Header-Dateien
- QT_INSTALL_LIBEXECS - Speicherort der ausführbaren Dateien, die von den Bibliotheken zur Laufzeit benötigt werden
- QT_INSTALL_LIBS - Speicherort der Bibliotheken
- QT_INSTALL_PLUGINS - Speicherort der Qt-Plugins
- QT_INSTALL_PREFIX - Standardpräfix für alle Pfade
- QT_INSTALL_QML - Speicherort der QML 2.x Erweiterungen
- QT_INSTALL_TESTS - Speicherort der Qt-Testfälle
- QT_INSTALL_TRANSLATIONS - Speicherort der Übersetzungsinformationen für Qt-Strings
- QT_SYSROOT - das von der Ziel-Build-Umgebung verwendete Sysroot
- QT_VERSION - die Qt-Version. Wir empfehlen, dass Sie Qt-Modul-spezifische Versionsnummern abfragen, indem Sie stattdessen $$QT.<module>.version-Variablen verwenden.
Zum Beispiel können Sie die Installation von Qt für diese Version von qmake mit der Eigenschaft QT_INSTALL_PREFIX
abfragen:
qmake -query "QT_INSTALL_PREFIX"
Sie können die Werte von Eigenschaften in einer Projektdatei wie folgt abfragen:
QMAKE_VERS = $$[QMAKE_VERSION]
QMAKESPEC
qmake benötigt eine Plattform- und Compiler-Beschreibungsdatei, die viele Standardwerte enthält, um geeignete Makefiles zu erzeugen. Die Standard-Qt-Distribution enthält viele dieser Dateien, die sich im Unterverzeichnis mkspecs
der Qt-Installation befinden.
Die Umgebungsvariable QMAKESPEC
kann eine der folgenden Angaben enthalten:
- Ein vollständiger Pfad zu einem Verzeichnis, das eine
qmake.conf
Datei enthält. In diesem Fall wird qmake die Dateiqmake.conf
aus diesem Verzeichnis heraus öffnen. Wenn die Datei nicht existiert, wird qmake mit einem Fehler beendet. - Der Name einer Plattform-Compiler-Kombination. In diesem Fall sucht qmake in dem Verzeichnis, das durch das Unterverzeichnis
mkspecs
des beim Kompilieren von Qt angegebenen Datenpfades (siehe QLibraryInfo::DataPath) angegeben wurde.
Hinweis: Der Pfad QMAKESPEC
wird automatisch dem generierten Makefile nach dem Inhalt der Systemvariablen INCLUDEPATH hinzugefügt.
Cache-Datei
Die Cache-Datei ist eine spezielle Datei, die qmake liest, um Einstellungen zu finden, die nicht in der qmake.conf
Datei, den Projektdateien oder auf der Kommandozeile angegeben sind. Wenn qmake gestartet wird, sucht es nach einer Datei namens .qmake.cache
in den Elternverzeichnissen des aktuellen Verzeichnisses, es sei denn, Sie geben -nocache
an. Wenn qmake diese Datei nicht findet, ignoriert es diesen Schritt der Verarbeitung.
Wenn qmake eine Datei .qmake.cache
findet, wird diese Datei zuerst verarbeitet, bevor die Projektdatei verarbeitet wird.
Dateierweiterungen
Unter normalen Umständen wird qmake versuchen, die für Ihre Plattform geeigneten Dateierweiterungen zu verwenden. Manchmal ist es jedoch notwendig, die Standardauswahl für jede Plattform zu überschreiben und explizit Dateierweiterungen zu definieren, die qmake verwenden soll. Dies wird durch die Neudefinition bestimmter eingebauter Variablen erreicht. Zum Beispiel kann die Erweiterung für moc-Dateien durch die folgende Zuweisung in einer Projektdatei neu definiert werden:
QMAKE_EXT_MOC = .mymoc
Die folgenden Variablen können verwendet werden, um gängige Dateierweiterungen, die von qmake erkannt werden, neu zu definieren:
- QMAKE_EXT_MOC ändert die Erweiterung, die für eingebundene moc-Dateien verwendet wird.
- QMAKE_EXT_UI ändert die Erweiterung, die für Qt Widgets Designer UI-Dateien verwendet wird (normalerweise in FORMS).
- QMAKE_EXT_PRL ändert die Erweiterung, die für Bibliotheksabhängigkeitsdateien verwendet wird.
- QMAKE_EXT_LEX ändert die in Lex-Dateien verwendete Endung (in der Regel in LEXSOURCES).
- QMAKE_EXT_YACC ändert das in Yacc-Dateien verwendete Suffix (in der Regel in YACCSOURCES).
- QMAKE_EXT_OBJ ändert das Suffix, das für generierte Objektdateien verwendet wird.
Alle der oben genannten Variablen akzeptieren nur den ersten Wert, so dass Sie ihr nur einen Wert zuweisen müssen, der in Ihrer gesamten Projektdatei verwendet wird. Es gibt zwei Variablen, die eine Liste von Werten akzeptieren:
- QMAKE_EXT_CPP veranlasst qmake, alle Dateien mit diesen Suffixen als C++-Quelldateien zu interpretieren.
- QMAKE_EXT_H veranlasst qmake, alle Dateien mit diesen Suffixen als C- und C++-Header-Dateien zu interpretieren.
© 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.