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 のホストビルドが必要です。これは、ビルド中に特定のツール(moc
、rcc
、qmlcachegen
、qsb
など)がホストビルドから呼び出されるためです。選択肢は2つあります:
- ホスト用にQt ソースをビルドするか
- Qt オンラインインストーラを使用してホストビルドをインストールする。
ただし、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
のファイルです。ターゲット・アーキテクチャによっては、aarch64le
やx86_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 Creator、直接 scp、または他の方法を使用して、Qt ビルドをターゲットデバイスにデプロイできます。-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 の設定」も参照してください 。
Qt for QNX サポート Qt for QNX ランタイムターゲットの要件©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。