Erste Schritte mit qmake

In diesem Tutorial lernen Sie die Grundlagen von qmake kennen. Die anderen Themen in diesem Handbuch enthalten detailliertere Informationen über die Verwendung von qmake.

Einfacher Einstieg

Nehmen wir an, Sie haben gerade eine grundlegende Implementierung Ihrer Anwendung fertiggestellt und die folgenden Dateien erstellt:

  • hallo.cpp
  • hallo.h
  • main.cpp

Sie finden diese Dateien im Verzeichnis examples/qmake/tutorial der Qt-Distribution. Das einzige, was Sie sonst noch über den Aufbau der Anwendung wissen, ist, dass sie in Qt geschrieben ist. Erstellen Sie zunächst mit Ihrem bevorzugten Texteditor eine Datei namens hello.pro im Verzeichnis examples/qmake/tutorial. Als erstes müssen Sie die Zeilen hinzufügen, die qmake über die Quell- und Header-Dateien informieren, die Teil Ihres Entwicklungsprojekts sind.

Wir fügen zuerst die Quelldateien in die Projektdatei ein. Dazu müssen Sie die Variable SOURCES verwenden. Beginnen Sie einfach eine neue Zeile mit SOURCES += und fügen Sie hello.cpp dahinter ein. Sie sollten dann etwa so aussehen:

SOURCES += hello.cpp

Wir wiederholen dies für jede Quelldatei im Projekt, bis wir das folgende Ergebnis haben:

SOURCES += hello.cpp
SOURCES += main.cpp

Wenn Sie es vorziehen, eine Make-ähnliche Syntax zu verwenden, bei der alle Dateien in einem Rutsch aufgelistet werden, können Sie die Zeilenumbrüche wie folgt verwenden:

SOURCES = hello.cpp \
          main.cpp

Nun, da die Quelldateien in der Projektdatei aufgeführt sind, müssen die Header-Dateien hinzugefügt werden. Diese werden genauso hinzugefügt wie die Quelldateien, mit dem Unterschied, dass der Name der Variablen HEADERS lautet.

Wenn Sie dies getan haben, sollte Ihre Projektdatei etwa so aussehen:

HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

Der Zielname wird automatisch festgelegt. Er ist derselbe wie der Dateiname des Projekts, jedoch mit dem für die Plattform geeigneten Suffix. Wenn die Projektdatei z. B. hello.pro heißt, lautet das Ziel unter Windows hello.exe und unter Unix hello. Wenn Sie einen anderen Namen verwenden möchten, können Sie ihn in der Projektdatei festlegen:

TARGET = helloworld

Die fertige Projektdatei sollte wie folgt aussehen:

HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

Sie können nun qmake verwenden, um ein Makefile für Ihre Anwendung zu erzeugen. Geben Sie in der Kommandozeile in Ihrem Projektverzeichnis Folgendes ein:

qmake -o Makefile hello.pro

Hinweis: Wenn Sie Qt über einen Paketmanager installiert haben, kann die Binärdatei qmake6 lauten.

Geben Sie dann make oder nmake ein, je nachdem, welchen Compiler Sie verwenden.

Für Visual Studio Benutzer kann qmake auch Visual Studio Projektdateien erzeugen. Ein Beispiel:

qmake -tp vc hello.pro

Eine Anwendung debuggingfähig machen

Die Release-Version einer Anwendung enthält keine Debugging-Symbole oder andere Debugging-Informationen. Während der Entwicklung ist es nützlich, eine Debugging-Version der Anwendung zu erstellen, die die relevanten Informationen enthält. Dies lässt sich leicht durch Hinzufügen von debug zur CONFIG-Variable in der Projektdatei erreichen.

Ein Beispiel:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

Verwenden Sie qmake wie zuvor, um ein Makefile zu erzeugen. Sie erhalten nun nützliche Informationen über Ihre Anwendung, wenn Sie sie in einer Debugging-Umgebung ausführen.

Hinzufügen von plattformspezifischen Quelldateien

Nach einigen Stunden des Programmierens haben Sie vielleicht mit dem plattformspezifischen Teil Ihrer Anwendung begonnen und beschlossen, den plattformabhängigen Code getrennt zu halten. Sie haben nun zwei neue Dateien, die Sie in Ihre Projektdatei aufnehmen müssen: hellowin.cpp und hellounix.cpp. Wir können diese nicht einfach zur Variable SOURCES hinzufügen, da dies beide Dateien in das Makefile einfügen würde. Was wir also tun müssen, ist, einen Bereich zu verwenden, der abhängig von der Plattform, für die wir bauen, verarbeitet wird.

Ein einfacher Bereich, der die plattformabhängige Datei für Windows hinzufügt, sieht wie folgt aus:

win32 {
    SOURCES += hellowin.cpp
}

Wenn wir für Windows bauen, fügt qmake hellowin.cpp zur Liste der Quelldateien hinzu. Wenn wir für eine andere Plattform bauen, ignoriert qmake die Datei einfach. Jetzt müssen Sie nur noch einen Bereich für die Unix-spezifische Datei erstellen.

Wenn Sie das getan haben, sollte Ihre Projektdatei in etwa so aussehen:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}

Verwenden Sie qmake wie zuvor, um ein Makefile zu erzeugen.

Anhalten von qmake, wenn eine Datei nicht vorhanden ist

Sie möchten vielleicht kein Makefile erstellen, wenn eine bestimmte Datei nicht existiert. Wir können überprüfen, ob eine Datei existiert, indem wir die Funktion exists() verwenden. Mit der Funktion error() können wir die Verarbeitung von qmake stoppen. Dies funktioniert auf die gleiche Art und Weise wie scopes. Ersetzen Sie einfach die Bereichsbedingung durch die Funktion. Eine Prüfung für eine Datei namens main.cpp sieht wie folgt aus:

!exists( main.cpp ) {
    error( "No main.cpp file found" )
}

Das Symbol ! wird verwendet, um den Test zu negieren. Das heißt, exists( main.cpp ) ist wahr, wenn die Datei existiert, und !exists( main.cpp ) ist wahr, wenn die Datei nicht existiert.

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}

Verwenden Sie qmake wie zuvor, um ein Makefile zu erzeugen. Wenn Sie main.cpp vorübergehend umbenennen, werden Sie die Meldung sehen und qmake wird die Verarbeitung abbrechen.

Prüfen auf mehr als eine Bedingung

Angenommen, Sie verwenden Windows und möchten die Ausgabe von Anweisungen mit qDebug() sehen, wenn Sie Ihre Anwendung auf der Kommandozeile ausführen. Um die Ausgabe zu sehen, müssen Sie Ihre Anwendung mit der entsprechenden Konsoleneinstellung erstellen. Wir können einfach console in die Zeile CONFIG einfügen, um diese Einstellung in das Makefile unter Windows aufzunehmen. Nehmen wir jedoch an, dass wir die Zeile CONFIG nur hinzufügen wollen, wenn wir unter Windows arbeiten und debug bereits in der Zeile CONFIG steht. Dies erfordert die Verwendung von zwei verschachtelten Bereichen. Erstellen Sie zunächst einen Bereich und dann den anderen innerhalb dieses Bereichs. Legen Sie die zu verarbeitenden Einstellungen in den zweiten Bereich, etwa so:

win32 {
    debug {
        CONFIG += console
    }
}

Verschachtelte Bereiche können durch Doppelpunkte miteinander verbunden werden, so dass die endgültige Projektdatei wie folgt aussieht:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}
win32:debug {
    CONFIG += console
}

Das war's! Sie haben nun das Tutorial für qmake abgeschlossen und sind bereit, Projektdateien für Ihre Entwicklungsprojekte zu schreiben.

© 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.