コマンドラインでのプロジェクトのビルド

このページでは、既存のプロジェクトの設定とビルド方法について説明します。Qt ベースの CMake プロジェクトを作成する方法を知りたい場合は、CMake を始める方法のドキュメントを参照してください。

Qtプロジェクトをビルドするために、CMakeはQtのインストール場所を知る必要があります。通常、これはCMake変数CMAKE_PREFIX_PATHにQtのインストールプレフィックスを設定することで行います。クロスコンパイルする場合は、クロスコンパイルを参照してください。

Qt オンラインインストーラーを使用して Qt をインストールする場合は、トップレベルのインストー ルディレクトリで Qt のバージョンを選択してください。例えば、次のコマンドは Windows での実行方法を示しています:

cmake -DCMAKE_PREFIX_PATH=C:\Qt\6.8.0\msvc2019_64 -S <source-dir> -B <build-dir>

<source-dir><build-dir> のプレースホルダは、プロジェクトのソースディレクトリとビルドディレクトリを表します。

CMakeジェネレーター

CMakeは、GNU MakeやNinjaなどのビルドツールがプロジェクトをビルドできるように、必要なビルドシステムファイルを生成します。

CMakeのデフォルトのジェネレータは、プラットフォームとビルド環境に依存します。例えばWindowsでは、Visual Studio環境が検出された場合、CMakeはVisual Studioプロジェクトファイルを生成します。

すべてのプラットフォームで一貫した開発体験を得るには、Ninja またはNinja Multi-Config ジェネレーターを使用してください。

CMake ジェネレーターを選択するには、CMAKE_GENERATOR 環境変数を設定するか、-G 引数を使用します:

cmake -G Ninja ...

qt-cmake

qt-cmake スクリプトは、プロジェクトを設定するための便利な代替手段です。Qt-cmake スクリプトは、プロジェクトを設定するための便利な代替手段です。CMAKE_PREFIX_PATH を指定する必要がなくなります。このスクリプトは、Qt インストールプレフィックスのbin ディレクトリにあります。このスクリプトはすべてのパラメータを CMake に渡しますので、cmake を使うのと同じように使うことができます:

C:\Qt\6.8.0\msvc2019_64\bin\qt-cmake -G Ninja -S <source-dir> -B <build-dir>

ビルドシステムファイルが生成されると、プロジェクトはビルドできるようになります:

cd <build-dir>
ninja

ジェネレータに依存しないCMakeコマンドを使用することもできます:

cmake --build <build-dir>

クロスコンパイル

開発マシンとは異なるプラットフォーム用にプロジェクトをビルドすることをクロスコンパイルと呼びます。例えば、Windowsマシン(ホストプラットフォーム)上でAndroid(ターゲットプラットフォーム)向けにビルドする場合です。

CMakeでクロスコンパイルするには、ほとんどのプラットフォーム用のツールチェインファイルが必要です。また、ターゲットプラットフォーム用の Qt バージョンに加えて、開発ホスト用の Qt バージョンも必要です。例えば、Windows 上で Android 用にクロスコンパイルするには、Qt for Windows と Qt for Android がインストールされている必要があります。

ターゲットプラットフォーム用の Qt インストールからqt-cmake を使用して、そのプラットフォーム用にプロジェクトをクロスコンパイルします:

<target-qt>/bin/qt-cmake -S <source-dir> -B <build-dir>

これにより、プロジェクトがターゲット・プラットフォーム用に設定されます。ツールチェーンファイルが自動的に渡され、その他のプラットフォーム固有の変数が設定されます。

カスタム・ツールチェーン・ファイルの指定

qt-cmake スクリプトは、Qt-internaltoolchain ファイルをCMake に渡します。このツールチェインファイルは、Qtのターゲットプラットフォーム固有の変数をいくつか設定します。

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

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

~/Qt/6.8.0/android_armv7/bin/qt-cmake -DQT_CHAINLOAD_TOOLCHAIN_FILE=<file-path> -S <source-dir> -B <build-dir>

これは、Qtの内部ツールチェーンファイルに、あなたのカスタムツールチェーンファイルも読み込むように指示します。

©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権はそれぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。