Cross-Kompilierung von Qt
Auf dieser Seite werden der allgemeine Ablauf und die Voraussetzungen für die Cross-Kompilierung von Qt beschrieben.
Wenn Sie lediglich nach einer Möglichkeit suchen, eine Host-Version von Qt zu erstellen, lesen Sie den Abschnitt „Erstellen der Host-Version von Qt“.
Begriffe und Definitionen
Cross-Kompilierung bedeutet, die Konfiguration und den Build für eine Zielplattform durchzuführen, die sich von Ihrer Host-Plattform unterscheidet.
Der Host ist der Computer, auf dem Sie Qt erstellen, zum Beispiel ein Linux-Rechner. Das Ziel ist das Gerät, für das Sie Qt erstellen, zum Beispiel ein Android-Tablet.
Beim Erstellen von Qt werden mehrere Tools ausgeführt, die Code generieren oder andere Verarbeitungsschritte durchführen. Diese Tools laufen auf dem Host und werden daher als Host-Tools bezeichnet. Diese Host-Tools sind Teil eines Host-Builds von Qt. Dieser Host-Build muss als Voraussetzung für das Erstellen von Qt für die Zielplattform vorbereitet werden.
Ein minimaler Host-Build von Qt ist ein Host-Build von Qt, der nur die Host-Tools enthält, die zur Erstellung eines Ziel-Builds von Qt erforderlich sind.
Qt wird mit CMake kompiliert, und CMake benötigt beim Cross-Compiling eine Toolchain-Datei. Diese Datei enthält Informationen über die Zielplattform und die verwendete Toolchain. Siehe die CMake-Dokumentation zum Cross-Compiling.
Bei einigen Zielplattformen wählt das Qt-Konfigurationsskript die Datei automatisch aus. Einzelheiten findest du in der Dokumentation zur jeweiligen Zielplattform.
Bei einigen Zielplattformen müssen Sie ein „sysroot“ angeben. Dabei handelt es sich um eine in sich geschlossene Umgebung, die alle notwendigen Dateien und Bibliotheken enthält, die zum Kompilieren und Verknüpfen von Anwendungen erforderlich sind.
Allgemeine Hinweise zum Host-Build von Qt
Während des Builds von Qt für die Zielplattform werden von dort aus Tools wie moc, rcc, qmlcachegen, qsb und andere aufgerufen. Wenn man beispielsweise auf einem x64-Rechner für ARM cross-kompiliert, muss zunächst ein lokaler x64-Build derselben Qt-Version bereitgestellt werden. Der Pfad zu diesem Qt-Build wird an configure oder cmake übergeben. Der Host-Build von Qt ist in der Regel ein regulärer Build von Qt für Ihr Host-Gerät.
Der Host-Build von Qt muss alle erforderlichen Host-Tools enthalten, um Qt für die Zielplattform zu erstellen. Wenn Ihr Ziel-Qt beispielsweise Qt Quick unterstützen soll, muss das Host-Qt den Shader-Compiler qsb enthalten. Eine einfache Möglichkeit, sicherzustellen, dass das Host-Qt alle erforderlichen Werkzeuge bereitstellt, besteht darin, auf dem Host dieselben Qt-Module zu erstellen, die Sie auf der Zielplattform benötigen.
Vermeiden Sie es, das Host-Qt statisch zu kompilieren, wenn das Ziel-Qt als „shared“ kompiliert wird. Ein statischer Qt-Build enthält möglicherweise nicht alle Werkzeuge, die zum Erstellen eines „shared“ Qt erforderlich sind.
Stellen Sie sicher, dass Sie für das Host- und das Ziel-Qt dieselbe Qt-Version verwenden, um Inkompatibilitätsprobleme zu vermeiden.
Erstellen der Host-Version von Qt
Einzelheiten zum Erstellen von Qt für die jeweilige Plattform finden Sie in der Dokumentation des gewünschten Hosts.
Um eine minimale Host-Qt-Version zu erstellen, verwenden Sie nach der Konfiguration von Qt den folgenden Build-Befehl:
mkdir ~/QtHostBuild
cd ~/QtHostBuild
~/QtSource/configure -developer-build -nomake tests
cmake --build . --target host_toolsDiese Version eignet sich nicht für die Entwicklung von Qt-Programmen für Ihre Host-Plattform, enthält jedoch die notwendigen Werkzeuge für die Cross-Kompilierung von Qt.
Angabe der Host-Version von Qt bei der Cross-Kompilierung
Beim Cross-Kompilieren müssen Sie das Ziel-Qt auf den Speicherort des Host-Qt verweisen.
Bei Verwendung des `configure`-Skripts verwenden Sie
~/QtSource/configure -qt-host-path ~/QtHostBuild ...target-specific options...Wenn Sie CMake direkt verwenden, verwenden Sie
cmake -S ~/QtSource -DQT_HOST_PATH=~/QtHostBuild ...target-specific options...Informationen zu zielspezifischen Optionen finden Sie in der Dokumentation des gewünschten Ziels.
© 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.