Projekte über die Kommandozeile erstellen

Diese Seite erklärt, wie man bestehende Projekte konfiguriert und baut. Wenn Sie wissen möchten, wie Sie ein Qt-basiertes CMake-Projekt erstellen, lesen Sie die Dokumentation über die ersten Schritte mit CMake.

Um ein Qt-Projekt zu erstellen, muss CMake wissen, wo sich die Qt-Installation befindet. Normalerweise geschieht dies, indem die CMake-Variable CMAKE_PREFIX_PATH auf das Qt-Installationspräfix gesetzt wird. Wenn Sie cross-compilieren, lesen Sie bitte den Abschnitt Cross-compilieren für Details zu weiteren Variablen, die Sie setzen müssen.

Wenn Qt mit Qt Online Installer installiert wird, wählen Sie eine Qt-Version innerhalb des obersten Installationsverzeichnisses. Der folgende Befehl zeigt zum Beispiel, wie dies unter Windows geschieht:

cmake -DCMAKE_PREFIX_PATH=C:\Qt\6.8.2\msvc2022_64 -S <source-dir> -B <build-dir>

Die Platzhalter <source-dir> und <build-dir> stehen für die Quell- und Build-Verzeichnisse Ihres Projekts.

CMake-Generatoren

CMake generiert die notwendigen Build-System-Dateien, die es Build-Tools wie GNU Make oder Ninja ermöglichen, Ihr Projekt zu bauen.

Der Standardgenerator von CMake hängt von der Plattform und der Build-Umgebung ab. Unter Windows zum Beispiel generiert CMake Visual Studio Projektdateien, wenn eine Visual Studio Umgebung erkannt wird.

Für eine konsistente Entwicklererfahrung auf allen Plattformen sollten Sie den Generator Ninja oder Ninja Multi-Config verwenden.

Sie können den CMake-Generator auswählen, indem Sie die Umgebungsvariable CMAKE_GENERATOR setzen oder das Argument -G verwenden:

cmake -G Ninja ...

qt-cmake

Das Skript qt-cmake ist eine bequeme Alternative zur Konfiguration Ihres Projekts. Es erspart Ihnen die Angabe der CMAKE_PREFIX_PATH. Sie finden es im Verzeichnis bin Ihres Qt-Installationspräfixes. Das Skript übergibt alle Parameter an CMake, so dass Sie es genau wie cmake verwenden können:

C:\Qt\6.8.2\msvc2022_64\bin\qt-cmake -G Ninja -S <source-dir> -B <build-dir>

Nachdem die Build-System-Dateien generiert wurden, ist Ihr Projekt bereit, gebaut zu werden:

cd <build-dir>
ninja

Sie können auch den Generator-unabhängigen CMake-Befehl verwenden:

cmake --build <build-dir>

Cross-Kompilierung

Wenn Sie Ihr Projekt für eine andere Plattform als Ihre Entwicklungsmaschine erstellen, nennt man das Cross-Compiling. Ein Beispiel ist die Erstellung für Android (die Zielplattform) auf einem Windows-Rechner (der Host-Plattform).

Die Cross-Kompilierung mit CMake erfordert für die meisten Plattformen eine Toolchain-Datei. Außerdem wird neben einer Qt-Version für die Zielplattform auch eine Qt-Version für den Entwicklungsrechner benötigt. Zum Beispiel müssen Sie Qt für Windows und Qt für Android installiert haben, um für Android unter Windows zu crosskompilieren.

Verwenden Sie qt-cmake aus der Qt-Installation für die Zielplattform, um Ihr Projekt für diese Plattform zu crosskompilieren:

<target-qt>/bin/qt-cmake -S <source-dir> -B <build-dir>

Dadurch wird Ihr Projekt für die Zielplattform konfiguriert. Die Toolchain-Datei wird automatisch übergeben, und möglicherweise werden weitere plattformspezifische Variablen eingerichtet.

Angeben einer benutzerdefinierten Toolchain-Datei

Das Skript qt-cmake übergibt eine Qt-interne Toolchain-Datei an CMake. Diese Toolchain-Datei setzt mehrere Variablen, die spezifisch für die Zielplattform von Qt sind.

Wenn Sie eine Qt-Installation verwenden, die nicht auf Ihrem Rechner erstellt wurde, muss qt-cmake den Speicherort der CMake-Toolchain-Datei für die Zielplattform kennen.

In einem solchen Fall können Sie qt-cmake anweisen, eine benutzerdefinierte Toolchain-Datei in die Kette zu laden, indem Sie die Variable QT_CHAINLOAD_TOOLCHAIN_FILE setzen:

~/Qt/6.8.2/android_armv7/bin/qt-cmake -DQT_CHAINLOAD_TOOLCHAIN_FILE=<file-path> -S <source-dir> -B <build-dir>

Dies weist die interne Toolchain-Datei von Qt an, auch Ihre benutzerdefinierte Toolchain-Datei zu laden.

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