Qt für QNX erstellen
Einrichten von QNX SDP
Zum Erstellen von Qt 6 müssen Sie ein QNX SDP von der QNX-Website herunterladen und installieren.
Hinweis: Es isteine entsprechende Lizenz erforderlich. Weitere Informationen erhalten Sie bei QNX.
Hinweis: FügenSie Ihrer QNX-SDP-8.0-Installationkeine experimentellen Wayland-Pakete aus dem QNX Software Center hinzu. Diese werden für den Kompilierung von Qt nicht benötigt, können jedoch bei der Konfiguration eines Qt-Builds zu einem Header-Konflikt führen.
Der Compiler und andere Teile der Toolchain sind in den SDP-Paketen enthalten. Initialisieren Sie Ihre Build-Umgebung, indem Sie das QNX-Setup-Skript aus Ihrem SDP-Installationsordner in einem Terminal wie folgt ausführen:
source qnxsdp-env.shOder führen Sie „qnxsdp-env.bat“ in der Windows-Befehlszeile aus.
Host-Build
Für die Cross-Kompilierung von Qt muss ein Host-Build von Qt verfügbar sein. Der Grund dafür ist, dass während des Builds bestimmte Tools (wie z. B. moc, rcc, qmlcachegen und qsb) vom Host-Build aus aufgerufen werden. Sie haben zwei Möglichkeiten:
- Qt-Quellcode für den Hostzu erstellen oder
- den Host-Build mithilfe von Qt Online Installer installieren.
Erstellen einer Toolchain-Datei für QNX
Um ein Projekt mit CMake cross-kompilieren zu können, benötigen Sie eine Toolchain-Datei. Diese CMake-Datei legt die korrekten Werte für den Plattformnamen, den Compiler/Linker und viele andere toolchain-spezifische Einstellungen fest. Als Referenz findest du die in der CI verwendeten Toolchain-Dateien im Quellpaket unter ` coin/provisioning/common/shared/cmake_toolchain_files`
set(CMAKE_SYSTEM_NAME QNX)
set(CMAKE_SYSTEM_PROCESSOR armle-v7)
set(arch gcc_ntoarmv7le)
set(CMAKE_C_COMPILER qcc)
set(CMAKE_C_COMPILER_TARGET ${arch})
set(CMAKE_CXX_COMPILER q++)
set(CMAKE_CXX_COMPILER_TARGET ${arch})
set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET};$ENV{QNX_TARGET}/${CMAKE_SYSTEM_PROCESSOR})
set(CMAKE_SYSROOT $ENV{QNX_TARGET})Die Beispieldatei gilt für armv7le. Weitere Möglichkeiten sind aarch64le und x86_64, je nach Ihrer Zielarchitektur.
Hinweis: CMake übergibt die Variablen STRIP, AR, RANLIB und NM unter QNX nicht korrekt; falls sie verwendet werden, müssen sie daher separat in einer Toolchain-Datei angegeben werden.
Konfigurieren und Erstellen von Qt für QNX
Um Qt für QNX zu konfigurieren und zu kompilieren, benötigen Sie Folgendes:
- Die Werkzeuge zum Erstellen von Qt, wie unter „Erstellen von Qt-Quellcode“ beschrieben, sind für Ihre Host-Plattform vorhanden und funktionsfähig.
- Die Toolchain-Datei, in diesem Beispiel „
$HOME/qnx.cmake“. - Der Qt-Quellcode muss ausgecheckt oder installiert sein, in diesem Beispiel unter
$HOME/qt. - Host-Build von Qt, in diesem Beispiel
$HOME/qt-host. - Präfix für den Installationsort der Qt-Build-Version auf dem lokalen System, in diesem Beispiel
$HOME/qnx-install. - Präfix für den Installationsort der Qt-Build-Version auf dem Zielgerät, in diesem Beispiel
/qt.
Nachdem Sie das Verzeichnis „ build “ erstellt und in dieses gewechselt haben, führen Sie Folgendes aus:
$HOME/qt/configure -nomake examples -nomake tests \
-qt-host-path $HOME/qt-host \
-extprefix $HOME/qnx-install \
-prefix /qt \
-- -DCMAKE_TOOLCHAIN_FILE=$HOME/qnx.cmake \
-DCMAKE_SYSTEM_VERSION=710 \
$HOME/qtSeit Qt 6 ist das Tool „configure“ ein Wrapper um CMake, und in der Praxis entspricht dieser „configure“-Befehl dem folgenden direkten CMake-Aufruf:
cmake -GNinja -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF \
-DQT_HOST_PATH=$HOME/qt-host \
-DCMAKE_STAGING_PREFIX=$HOME/qnx-install \
-DCMAKE_INSTALL_PREFIX=/qt \
-DCMAKE_TOOLCHAIN_FILE=$HOME/qnx.cmake \
-DCMAKE_SYSTEM_VERSION=710 \
$HOME/qtWählen Sie den Wert für CMAKE_SYSTEM_VERSION entsprechend Ihrer QNX-SDP-Version aus:
- 710 für QNX SDP 7.1
- 800 für QNX SDP 8.0
Wenn Sie nur mit einer QNX-Version arbeiten, können Sie `CMAKE_SYSTEM_VERSION` auch in Ihrer Toolchain-Datei definieren.
Hinweis: Beim Erstellen unter Windows müssen PCH (Precompiled Headers) explizit deaktiviert werden, da deren Aktivierung zum Absturz des QNX-Compilers führt. Um PCH zu deaktivieren, verwenden Sie die Konfigurationsoption „ -no-pch “.
Hinweis: Wenn Sie QNX SDP 8.0 verwenden, überspringen Sie nicht unterstützte Module und deren abhängige Module mithilfe der Konfigurationsoptionen „ -skip qtremoteobjects -skip qtinterfaceframework “.
Sobald die Konfiguration fehlerfrei abgeschlossen ist, erstellen Sie Qt, indem Sie Folgendes ausführen:
cmake --build . --parallelHinweis: Der QNX -Compiler benötigt möglicherweise mehr Arbeitsspeicher als der für den Host-Build verwendete Compiler. Verwenden Sie „ --parallel <numOfProcesses> “, um die maximale Anzahl gleichzeitiger Prozesse beim Erstellen zu begrenzen.
Führen Sie nach dem Kompilieren Folgendes aus:
cmake --install .Dadurch werden die Ergebnisse unter „ $HOME/qnx-install “ installiert. Von dort aus können Sie den Qt-Build mithilfe von „ Qt Creator “, direkt per SCP oder auf andere Weise auf dem Zielgerät bereitstellen. Der Konfigurationsparameter „ -prefix “ (im Beispiel „/qt“) definiert den Bereitstellungsort auf dem Zielgerät.
Erstellen von Anwendungen für das Zielgerät
Wenn Sie den Qt-Build abgeschlossen haben und dieser im Staging-Verzeichnis installiert ist, können Sie Beispiele oder Anwendungen erstellen.
Verwenden Sie mit CMake das generierte Skript „ qt-cmake “ im Verzeichnis „bin“ des Staging-Orts (im Beispiel „$HOME/qnx-install “), um den Anwendungsbuild zu konfigurieren, und führen Sie anschließend „ninja“ aus. Beispiel:
$HOME/qnx-install/bin/qt-cmake .
cmake --build .Anschließend können Sie die resultierende Anwendungsdatei auf dem Gerät bereitstellen. Die Verwendung des Hilfsskripts „ qt-cmake “ ist praktisch, da das Skript sicherstellt, dass die für den Qt-Build verwendete Toolchain-Datei geladen wird, sodass Sie diese nicht für jede Anwendung erneut angeben müssen.
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.
Weisen Sie „ qt-cmake “ in einem solchen Fall an, eine benutzerdefinierte Toolchain-Datei zu laden, indem Sie die Variable „ QT_CHAINLOAD_TOOLCHAIN_FILE “ wie folgt setzen:
$HOME/qnx-install/bin/qt-cmake -DQT_CHAINLOAD_TOOLCHAIN_FILE=$HOME/qnx.cmake .Wenn Sie in „ Qt Creator “ Anwendungen mit einer Qt-Installation erstellen, die nicht auf Ihrem Rechner erstellt wurde, muss die Variable „ CMAKE_TOOLCHAIN_FILE “, die auf die lokale Toolchain-Datei verweist, zur Kit-Konfiguration hinzugefügt werden (Bearbeiten > Einstellungen > Kits).
Weitere Informationen zum Verbinden und Hinzufügen von Kits für QNX-Geräte bei der Verwendung von „ Qt Creator “ finden Sie unter „QNX-Geräte verbinden“.
Bibliotheken von Drittanbietern
Stellen Sie sicher, dass Ihr System-Image die folgenden zusätzlichen Bibliotheken von Drittanbietern enthält, die nicht immer in minimalen QNX Neutrino RTOS-Images enthalten sind:
libfontconfiglibfreetypelibiconvlibicui18nlibicudatalibicuuclibpng16libxml2libsqlite3libssllibcryptolibzstd
Hinweis: Dies ist keine vollständige Liste der von Qt unter QNX Neutrino OS verwendeten gemeinsam genutzten Bibliotheken. Viele gemeinsam genutzte Bibliotheken sind bereits in einem typischen Betriebssystem-Image verfügbar oder durch andere Teile des Systems enthalten, beispielsweise Screen.
Siehe auch „Qt-Konfigurationsoptionen “ und „Qt konfigurieren“.
© 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.