Auf dieser Seite

Erste Schritte mit qmake

Dieses Tutorial vermittelt Ihnen die Grundlagen von qmake. Die anderen Themen in diesem Handbuch enthalten detailliertere Informationen zur Verwendung von qmake.

Einfacher Einstieg

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

  • hello.cpp
  • hello.h
  • main.cpp

Diese Dateien finden Sie 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 zunächst die Quelldateien zur Projektdatei hinzu. Dazu musst du die Variable `SOURCES` verwenden. Beginne einfach eine neue Zeile mit ` SOURCES += ` und füge danach `hello.cpp` ein. Das Ergebnis sollte in etwa so aussehen:

SOURCES += hello.cpp

Wir wiederholen dies für jede Quelldatei im Projekt, bis wir folgendes Ergebnis erhalten:

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

Wenn du eine Make-ähnliche Syntax bevorzugst, bei der alle Dateien auf einmal aufgelistet werden, kannst du die Zeilenumbruch-Escape-Zeichen wie folgt verwenden:

SOURCES = hello.cpp \
          main.cpp

Nachdem die Quelldateien nun in der Projektdatei aufgelistet sind, müssen die Header-Dateien hinzugefügt werden. Diese werden auf genau dieselbe Weise wie Quelldateien hinzugefügt, nur dass wir hier die Variable „HEADERS“ verwenden.

Sobald du dies getan hast, sollte deine Projektdatei in etwa so aussehen:

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

Der Zielname wird automatisch festgelegt. Er entspricht dem Namen der Projektdatei, jedoch mit dem für die jeweilige Plattform passenden Suffix. Wenn die Projektdatei beispielsweise „ 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 diesen 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 mit qmake ein Makefile für Ihre Anwendung erstellen. Geben Sie dazu in Ihrem Projektverzeichnis an der Befehlszeile Folgendes ein:

qmake -o Makefile hello.pro

Hinweis: Wenn Sie Qt über einen Paketmanager installiert haben, lautet der Pfad zur ausführbaren Datei möglicherweise qmake6.

Geben Sie dann je nach verwendetem Compiler entweder „ make “ oder „ nmake “ ein.

Für Visual-Studio-Benutzer kann qmake auch Visual-Studio-Projektdateien erstellen. Zum Beispiel:

qmake -tp vc hello.pro

Eine Anwendung debuggbar machen

Die Release-Version einer Anwendung enthält keine Debugging-Symbole oder andere Debugging-Informationen. Während der Entwicklung ist es sinnvoll, eine Debugging-Version der Anwendung zu erstellen, die über die relevanten Informationen verfügt. Dies lässt sich ganz einfach erreichen, indem Sie debug zur CONFIG-Variablen in der Projektdatei hinzufügen.

Beispiel:

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

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

Hinzufügen plattformspezifischer Quelldateien

Nach einigen Stunden Programmierarbeit haben Sie vielleicht bereits mit dem plattformspezifischen Teil Ihrer Anwendung begonnen und beschlossen, den plattformabhängigen Code separat zu halten. Sie haben nun also zwei neue Dateien, die Sie in Ihre Projektdatei einbinden müssen: „ hellowin.cpp “ und „ hellounix.cpp “. Wir können diese nicht einfach zur Variablen „ SOURCES “ hinzufügen, da dadurch beide Dateien in das Makefile aufgenommen würden. Daher müssen wir hier einen Bereich verwenden, der je nach der Plattform, für die wir kompilieren, verarbeitet wird.

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

win32 {
    SOURCES += hellowin.cpp
}

Beim Kompilieren für Windows fügt qmake „ hellowin.cpp “ zur Liste der Quelldateien hinzu. Beim Kompilieren für jede andere Plattform ignoriert qmake diese Datei einfach. Nun muss nur noch ein Bereich für die Unix-spezifische Datei erstellt werden.

Wenn Sie dies 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 generieren.

qmake anhalten, wenn eine Datei nicht existiert

Möglicherweise möchten Sie kein Makefile erstellen, wenn eine bestimmte Datei nicht existiert. Mit der Funktion `exists() ` können wir prüfen, ob eine Datei existiert. Mit der Funktion `error() ` können wir die Verarbeitung durch qmake abbrechen. Dies funktioniert genauso wie bei Scopes. Ersetzen Sie einfach die Scope-Bedingung durch die Funktion. Eine Prüfung auf 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 verneinen. 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 eine Makefile zu erstellen. Wenn Sie „ main.cpp “ vorübergehend umbenennen, wird die entsprechende Meldung angezeigt und qmake bricht die Verarbeitung ab.

Prüfung auf mehr als eine Bedingung

Angenommen, Sie verwenden Windows und möchten die Ausgabe von Anweisungen mit ` qDebug() ` sehen, wenn Sie Ihre Anwendung über die Befehlszeile ausführen. Um die Ausgabe zu sehen, müssen Sie Ihre Anwendung mit der entsprechenden Konsoleneinstellung kompilieren. Wir können ganz einfach ` console ` in die Zeile ` CONFIG ` einfügen, um diese Einstellung in das Makefile unter Windows aufzunehmen. Nehmen wir jedoch an, wir möchten die Zeile „ CONFIG “ nur dann hinzufügen, wenn wir unter Windows arbeiten und „ debug “ bereits in der Zeile „ CONFIG “ enthalten ist. Dazu müssen zwei verschachtelte Bereiche verwendet werden. Erstellen Sie zunächst einen Bereich und anschließend den anderen darin. Fügen Sie die zu verarbeitenden Einstellungen in den zweiten Bereich ein, etwa wie folgt:

win32 {
    debug {
        CONFIG += console
    }
}

Verschachtelte Bereiche können durch Doppelpunkte miteinander verbunden werden, sodass 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 zu qmake abgeschlossen und sind bereit, Projektdateien für Ihre Entwicklungsprojekte zu erstellen.

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