Qt für QNX erstellen

QNX SDP einrichten

Die Erstellung von Qt 6 erfordert das Herunterladen und Installieren einer QNX SDP von der QNX Website.

Hinweis: Eine geeignete Lizenz ist erforderlich. Kontaktieren Sie QNX für weitere Informationen.

Hinweis: Fügen Sie keine experimentellen Wayland-Pakete aus dem QNX Software Center zu Ihrer QNX SDP 8.0-Installation hinzu. Sie werden nicht benötigt, um Qt zu bauen, können aber einen Header-Konflikt verursachen, wenn Sie einen Qt-Build konfigurieren.

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

Oder führen Sie qnxsdp-env.bat in der Windows-Kommando-Shell aus.

Host-Build

Ein Host-Build von Qt muss verfügbar sein, um Qt crosskompilieren zu können. Das liegt daran, dass während des Builds bestimmte Tools (wie moc, rcc, qmlcachegen und qsb) vom Host-Build aufgerufen werden. Sie haben zwei Möglichkeiten:

  • Qt-Quellen für den Hostbauen oder
  • Installation des Host-Builds mit Qt Online Installer.

Erstellen einer Toolchain-Datei für QNX

Um ein Projekt mit CMake crosskompilieren zu können, benötigen Sie eine Toolchain-Datei. Diese CMake-Sprachdatei setzt die richtigen Werte für den Plattformnamen, Compiler/Linker und viele andere toolchain-spezifische Dinge. Als Referenz finden Sie die in CI verwendeten Toolchain-Dateien im Quellpaket 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 ist für armv7le. Die anderen Möglichkeiten sind aarch64le und x86_64, abhängig von Ihrer Zielarchitektur.

Hinweis: Cmake übergibt die Variablen STRIP, AR, RANLIB und NM auf QNX nicht korrekt, so dass sie, falls verwendet, separat in einer Toolchain-Datei angegeben werden müssen.

Konfigurieren und Erstellen von Qt für QNX

Um Qt für QNX zu konfigurieren und zu bauen, benötigen Sie folgendes:

  • Die Werkzeuge zur Erstellung von Qt, wie in Erstellen von Qt-Quellen beschrieben, sind vorhanden und funktionieren für Ihre Host-Plattform.
  • Die Toolchain-Datei, in diesem Beispiel $HOME/qnx.cmake.
  • Der ausgecheckte oder installierte Qt-Quellcode, in diesem Beispiel unter $HOME/qt.
  • Der Host-Build von Qt, in diesem Beispiel $HOME/qt-host.
  • Präfix für den Installationsort des Qt-Builds auf dem lokalen System, in diesem Beispiel $HOME/qnx-install.
  • Präfix für den Installationsort des Qt-Builds auf dem Zielgerät, in diesem Beispiel /qt.

Nachdem Sie das Verzeichnis build erstellt und dorthin 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/qt

Seit Qt 6 ist das configure-Tool ein Wrapper um CMake und in der Praxis ist dieser configure-Befehl äquivalent zum 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/qt

Wählen Sie den Wert von CMAKE_SYSTEM_VERSION basierend auf Ihrer QNX SDP Version:

  • 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: Wenn Sie unter Windows bauen, muß PCH (Precompiled Headers) explizit deaktiviert werden, da die Aktivierung den QNX-Compiler zum Absturz bringt. Um PCH zu deaktivieren, verwenden Sie die Konfigurationsoption -no-pch.

Hinweis: Wenn Sie QNX SDP 8.0 verwenden, überspringen Sie nicht unterstützte und von ihnen abhängige Module mit Hilfe der Konfigurationsoptionen -skip qtmultimedia -skip qtspeech -skip qtremoteobjects -skip qtinterfaceframework.

Sobald die Konfiguration ohne Fehler abgeschlossen ist, erstellen Sie Qt, indem Sie folgendes ausführen:

cmake --build . --parallel

Hinweis: Der QNX-Compiler benötigt möglicherweise mehr Speicher als der Compiler, der für die Erstellung des Hosts verwendet wird. Verwenden Sie --parallel <numOfProcesses>, um die maximale Anzahl der gleichzeitigen Prozesse während der Erstellung zu begrenzen.

Nach der Erstellung führen Sie Folgendes aus:

cmake --install .

Dadurch werden die Ergebnisse auf $HOME/qnx-install installiert. Von dort aus können Sie den Qt-Build mit Qt Creator, scp direkt oder mit einer anderen Methode auf das Zielgerät übertragen. Der Konfigurationsparameter -prefix (/qt in diesem Beispiel) definiert den Bereitstellungsort auf dem Zielgerät.

Erstellen von Anwendungen für das Zielgerät

Wenn Sie den Qt-Build abgeschlossen haben und er am Bereitstellungsort installiert ist, können Sie Beispiele oder Anwendungen erstellen.

Verwenden Sie das mit CMake erstellte Skript qt-cmake im bin-Verzeichnis des Bereitstellungsortes (im Beispiel$HOME/qnx-install ), um die Anwendungserstellung zu konfigurieren, und führen Sie dann ninja aus. Ein Beispiel:

$HOME/qnx-install/bin/qt-cmake .
cmake --build .

Anschließend können Sie das resultierende Anwendungsbinary auf dem Gerät bereitstellen. Die Verwendung des qt-cmake Hilfsskripts ist praktisch, weil das Skript sicherstellt, dass die Toolchain-Datei, die für die Erstellung von Qt verwendet wurde, geladen wird, so dass sie nicht für jede Anwendung wiederholt angegeben werden muss.

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 weisen Sie qt-cmake 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 Anwendungen in Qt Creator mit einer Qt-Installation erstellen, die nicht auf Ihrem Rechner erstellt wurde, muss die Variable CMAKE_TOOLCHAIN_FILE, die auf eine 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 Verwendung von Qt Creator finden Sie unter Verbinden von QNX-Geräten.

Bibliotheken von Drittanbietern

Stellen Sie sicher, dass Ihr System-Image die folgenden zusätzlichen Bibliotheken von Drittanbietern enthält, die nicht immer in den minimalen QNX Neutrino RTOS Images enthalten sind:

  • libfontconfig
  • libfreetype
  • libiconv
  • libicui18n
  • libicudata
  • libicuuc
  • libpng16
  • libxml2
  • libsqlite3
  • libssl
  • libcrypto
  • libzstd

Anmerkung: Dies ist keine vollständige Liste der Bibliotheken, die von Qt auf QNX Neutrino OS verwendet werden. Mehrere gemeinsam genutzte Bibliotheken sind bereits in einem typischen Betriebssystem-Image vorhanden oder werden von anderen Teilen des Systems eingebunden, zum Beispiel Screen.

Siehe auch Qt Configure Options und Configuring Qt.

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