Qt for QNX のビルド

QNX SDP のセットアップ

Qt 6 をビルドするには、QNX ウェブサイトから QNX SDP 7.1 をダウンロードしてインストールする必要があります。

注: 適切なライセンスが必要です。詳細については、QNX にお問い合わせください

コンパイラおよびツールチェーンの他の部分は、SDP パッケージで提供されます。ターミナルで SDP インストール フォルダから次のように QNX セットアップ スクリプトを実行して、ビルド環境を初期化します:

source qnxsdp-env.sh

または、Windows コマンドシェルで qnxsdp-env.bat を実行します。

ホストビルド

Qt をクロスコンパイルするには、Qt のホストビルドが必要です。これは、ビルド中に特定のツール(mocrccqmlcachegenqsb など)がホストビルドから呼び出されるためです。選択肢は2つあります:

  • ホスト用にQt ソースをビルドするか
  • Qt Online Installer を使ってホストビルドをインストールする。

ただし、QNX 用にコンパイルする場合にも同じツールが必要になるため、ホスト上でデスクトッ プターゲット用の Qt をビルドできるようにしておくことをお勧めします。

QNX 用ツールチェインファイルの作成

CMake でプロジェクトをクロスコンパイルするには、ツールチェーンファイルが必要です。この CMake 言語ファイルでは、プラットフォーム名、コンパイラ/リンカ、その他多くのツールチェーン固有のものに正しい値を設定します。参考までに、CIで使われるツールチェーンファイルはソースパッケージ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})

サンプルはarmv7le のファイルです。ターゲット・アーキテクチャによっては、aarch64lex86_64 もあります。

注意: Cmake は QNX 上で STRIP、AR、RANLIB、NM 変数を正しく渡さないため、使用する場合はツールチェインファイルで個別に指定する必要があります。

QNX 用 Qt の設定とビルド

QNX 用の Qt を設定およびビルドするには、以下が必要です:

  • Qt ソースのビルド」で説明する Qt のビルドツールがホストプラットフォーム用に用意され、 機能している。
  • ツールチェーンファイル$HOME/qnx.cmake
  • Qt ソース コードがチェックアウトされている、または$HOME/qt の下にインストールされている。
  • $HOME/qt-host に Qt のホストビルドがあります。
  • ローカルシステムのインストール場所は$HOME/qnx-install に設定されています。

build ディレクトリを作成して切り替えたら、以下を実行してください:

$HOME/qt/configure -nomake examples -nomake tests \
-qt-host-path $HOME/qt_host \
-extprefix qnx_install \
-prefix /qt \
-- -DCMAKE_TOOLCHAIN_FILE=$HOME/qnx.cmake  \
$HOME/qt

Qt 6以降、configureツールはCMakeのラッパーであり、実際には、このconfigureコマンドは以下のCMakeの直接呼び出しと同等です:

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  \
$HOME/qt

注意: Windows 上でビルドする場合、PCH(Precompiled Headers)を有効にすると QNX コンパイラがクラッシュするため、明示的に無効にする必要があります。PCH を無効にするには、構成オプション-no-pch を使用します。

注: QNX SDP 8.0 を使用している場合は、コンフィギュレーション オプション-skip qtmultimedia -skip qtspeech -skip qtremoteobjects -skip qtinterfaceframework を使用して、サポートされていないモジュールとその依存モジュールをスキップします。

設定がエラーなしで完了したら、以下を実行して Qt をビルドします:

cmake --build . --parallel

注意: QNX コンパイラは、ホスト ビルドに使用したコンパイラよりも多くのメモリを必要とする場合があります。--parallel <numOfProcesses> 注意: QNX コンパイラーは、ホスト ビルドに使用するコンパイラーよりも多くのメモリを必要とする場合があります。

ビルドが完了したら、以下を実行してください:

cmake --install .

これにより、結果が$HOME/qnx_install にインストールされます。Qt のビルドは、Qt Creator や scp を直接使用するか、その他の方法でターゲットデバイスにデプロイできます。-prefix のコンフィギュレーション・パラメータ(例では /qt)は、ターゲット・デバイスのデプロイ場所を定義します。

ターゲットデバイス用のアプリケーションのビルド

Qt のビルドが完了し、ステージングロケーションにインストールされたら、サンプルやアプリケーションをビルドすることができます。

CMakeを使用して、ステージングロケーションのbinディレクトリ(例では$HOME/qnx_install)に生成されたqt-cmake スクリプトを使用して設定し、ninjaを実行します。例えば

$HOME/qnx_install/bin/qt-cmake .
cmake --build .

生成されたアプリケーション・バイナリをデバイスにデプロイできます。qt-cmake ヘルパースクリプトを使用すると、Qt のビルドに使用したツールチェーンファイルが確実にロードされるため、アプリケーションごとに繰り返し指定する必要がなく便利です。

あなたのマシンでビルドされていない Qt インストールを使用する場合、qt-cmake はターゲットプラットフォームの CMake ツールチェーンファイルの場所を知る必要があります。

そのような場合は、QT_CHAINLOAD_TOOLCHAIN_FILE 変数を以下のように設定することで、qt-cmake にカスタムツールチェーンファイルをチェーンロードするように指示します:

$HOME/qnx_install/bin/qt-cmake -DQT_CHAINLOAD_TOOLCHAIN_FILE=$HOME/qnx.cmake .

自分のマシンでビルドされていない Qt インストールを使用してQt Creator でアプリケーションをビルドする場合、ローカルのツールチェーンファイルを指すCMAKE_TOOLCHAIN_FILE 変数をキット構成(Edit > Preferences > Kits)に追加する必要があります。

Qt Creator を使用する際の QNX デバイスのキットの接続と追加の詳細については、「QNX デバイスの接続」を参照してください。

サード パーティ ライブラリ

最小限の QNX Neutrino RTOS イメージには常に含まれているわけではありませんが、以下の追加サードパーティ・ライブラリがシステム・イメージに含まれていることを確認してください:

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

注意: これは、QNX Neutrino OS で Qt が使用する共有ライブラリの完全なリストではありません。複数の共有ライブラリは、一般的な OS イメージで既に利用可能であるか、シス テムの他の部分、例えばScreen などに含まれています。

Qt 設定オプション」と「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.