このページでは

Qt の configure オプション

configureは、ソースからカスタムバージョンの Qt をビルドするのを支援するコマンドラインツールです。これは Qt のメインソースディレクトリに含まれています。

Qt 6以降、configureはCMakeをラップするツールとなっています。CMakeは直接呼び出すことも可能です。configureは、追加のエラーチェック機能とQt 5との互換性を提供します。

このページでは、configureのオプションの一部について説明します。オプションの完全な一覧を確認するには、configure -h というコマンドを入力してください。

注: 特に断りがない限り 、このページに記載されているコマンドはLinuxプラットフォーム向けです。macOSおよびWindowsでは、PATH やディレクトリ構造が異なるため、コマンドも異なります。また、Windowsシステムでは、configureスクリプトはconfigure.bat という名前で呼ばれます。

configure のワークフロー

configure は、CMake、コンパイラ、および必要なビルドツールがすぐに利用可能な、動作するビルド環境内で実行する必要があります。「Qt ソースのビルド」には、プラットフォームごとの依存関係が記載されています。

このような環境をセットアップした後、一般的なワークフローとしては、別のビルドディレクトリを作成し、まず `configure` を実行してから Qt をビルドし、最後に Qt をインストールします。

~/qt-source/configure
cmake --build . --parallel
cmake --install .

さまざまな configure フラグを試してみたい場合、configure を複数回実行することになるでしょう。なお、CMake は configure オプションや環境に関する情報を CMakeCache.txt というファイルにキャッシュします。キャッシュされた情報なしで最初からやり直したい場合は、このファイルを削除してください。

ソース、ビルド、およびインストールディレクトリ

ソースディレクトリには、ソースパッケージやGitリポジトリから取得したソースコードが含まれます。ビルドディレクトリは、ビルドシステムファイル、オブジェクトファイル、その他の中間ファイルなど、ビルドに関連するファイルが格納される場所です。インストールディレクトリは、システムまたはアプリケーションで使用されるバイナリやライブラリがインストールされる場所です。

シャドウビルドを行い、-prefixオプションを使用することで、これらのディレクトリを分離しておくことをお勧めします。これにより、Qtのソースツリーを、別のディレクトリに保存されるビルド成果物やバイナリからクリーンな状態に保つことができます。この方法は、同じソースツリーから異なる構成で複数のビルドを行いたい場合に非常に便利です。 シャドウビルドを行うには、別のディレクトリから `configure` を実行します。

mkdir ~/qt-build
cd ~/qt-build
~/qt-source/configure -prefix /opt/Qt6

-prefix オプションを指定して設定を行うと、Qt のバイナリやライブラリは別のディレクトリ(この場合は /opt/Qt6)にインストールされます。

例、テスト、およびツール

デフォルトでは、configure は Qt のライブラリとツールのみを設定します。-make examples または-make tests を使用すると、Qt に付属するサンプルやテストもビルドできます:

~/qt-source/configure -make examples -make tests

また、例、テスト、およびツールが設定されるものの、デフォルトではビルドされないように Qt を設定することも可能です。CMake 変数QT_BUILD_EXAMPLES_BY_DEFAULT 、QT_BUILD_TESTS_BY_DEFAULT 、およびQT_BUILD_TOOLS_BY_DEFAULT を OFF に設定すると、cmake --build . によってそれぞれの部分がビルドされなくなります。その代わりに、CMake は個別のターゲットを生成し、それらを個別にビルドできるようになります。

ここでは、Qtライブラリやツールに加え、NotePadサンプルもビルドします:

~/qt-source/configure -make examples -- -D QT_BUILD_EXAMPLES_BY_DEFAULT=OFF
cmake --build . --parallel
cmake --build . --parallel --target notepad

注: -developer-build オプションを指定すると 、デフォルトでテストがビルドされます。以下の「開発者向けビルド」も参照してください。

ビルド構成

Qtライブラリやツールは、さまざまなバリエーションでビルドでき、それぞれが異なるユースケースに合わせて最適化されています。

デバッグおよびリリースビルド

-release このオプションは、コンパイラにコードの最適化を行わせ、Qt およびそのツールに追加のデバッグシンボルを含めないように指示します。

-debug 一部の最適化をスキップし、Qt およびそのツールのデバッグを容易にします。このオプションは、デバッガでビルドされたライブラリのコードや状態を検査できるようにするデバッグシンボルの生成も有効にします。

最後に、-debug-and-release を使用すると、Qtライブラリのデバッグ版とリリース版の両方を一度にビルドできます。これは、Windows向けのビルドを構成した場合にのみサポートされます。

設定を微調整するためのその他のオプションとして、次のようなものがあります:

  • -force-debug-info: デバッグ情報を含むリリースビルドを作成します。
  • -separate-debug-info: デバッグ情報を別のファイルに抽出します。
  • -optimize-size: リリースビルドを速度ではなくサイズを優先して最適化します。

静的および共有ビルド

Qtモジュールは、実行ファイルがリンクし、起動時(Qtライブラリの場合)または実行時(Qtプラグインの場合)に読み込む独立したライブラリとしてビルドできます。これは共有ビルドと呼ばれ、ほとんどのプラットフォームでデフォルトの設定となっています。これに対応するconfigureオプションは-shared です。

また、実行可能バイナリが、リンク先のすべての Qt モジュールと必要なすべての Qt プラグインを内部に含めるように Qt をビルドすることもできます。これは静的ビルドと呼ばれ、-static オプションを使用して設定する際に選択できます。

CMake ジェネレータ

設定時には、CMakeジェネレータを選択できます。なお、CMakeはQtで使用できないジェネレータもサポートしているため、configureは自動的に適切なジェネレータを選択します。

ninja 実行ファイルが利用可能な場合、configure は常にNinja ジェネレータおよびビルドツールを使用します。Ninja はクロスプラットフォームで、機能が豊富かつ高性能であり、すべてのプラットフォームで推奨されています。他のジェネレータを使用しても動作する可能性はありますが、公式にはサポートされていません。

モジュールと機能

Qtのソースコードは、「qtbase 」、「qtdeclarative 」、または「qtmultimedia 」といった、サブモジュールと呼ばれるいくつかの最上位ディレクトリに整理されています。これらのサブモジュール内には、さまざまなQtモジュールのソースコードが含まれています。 Qt Core, Qt Quick、および Qt Multimedia は、そのような Qt モジュールの例です。

注:多くの サブモジュール(最上位のソースディレクトリ)は、それらが実装するQt モジュールと同じ名前を持っていますが、必ずしもそうとは限りません。例えば、qtdeclarative には Qt Quick および Qt Qml、および関連するさまざまなモジュールが含まれています。概要については、各ディレクトリ内の README.md ファイルを参照してください。

ビルド時間を短縮するために、サブモジュールを明示的に含めたり除外したりすることができます。さらに、各 Qt モジュールには、明示的に有効化または無効化できる機能がある場合があります。

Qtサブモジュールの包含と除外

configure の`-skip ` オプションは、Qt ビルドからサブモジュール(最上位のソースディレクトリ)を除外するために使用されます。サブモジュールを除外すると、そのサブモジュール内のすべてのQt モジュールも除外されます。qtwayland サブモジュールには、 Qt Wayland Compositor Qt Wayland QPAプラグインの両方を含んでいます。したがって、configureオプションとして-skip qtwayland を指定すると、これら両方のQtモジュールが除外されます。

~/qt-source/configure -skip qtwayland

configureの -submodules オプションを使用すると、指定されたサブモジュールとその依存関係のみをビルドするように構成できます。たとえば、qtmultimedia サブモジュールを指定すると、 Qt Multimedia そのすべての依存関係がビルドに含まれます。複数のサブモジュールはコンマで区切って指定できます。

~/qt-source/configure -submodules qtmultimedia,qtactiveqt

機能の包含または除外

-feature-<機能>および-no-feature-<機能>オプションは、それぞれ特定の機能を含めたり除外したりします。

たとえば、-no-feature-accessibility 設定オプションを使用すると、Qt のアクセシビリティサポートを無効にできます。

~/qt-source/configure -no-feature-accessibility

configure -list-features を使用すると、コマンドライン上ですべての利用可能な機能のリストを表示できます。機能は他の機能に依存している場合があるため、ある機能を無効にすると他の機能に副作用が生じる可能性があることに注意してください。

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

Qtのソースパッケージには、サードパーティ製ライブラリが含まれています。Qtがシステムのライブラリを使用するか、バンドルされたバージョンを使用するか設定するには、設定対象のライブラリ名の前に-system または-qt のいずれかを指定します。

以下の表に、サードパーティのオプションの一部をまとめました。

ライブラリ名Qtに同梱されているかシステムにインストールされているもの
zlib-qt-zlib-system-zlib
libjpeg-qt-libjpeg-system-libjpeg
libpng-qt-libpng-system-libpng
freetype-qt-freetype-system-freetype
PCRE-qt-pcre-system-pcre
HarfBuzz-NG-qt-harfbuzz-system-harfbuzz

また、-qt の代わりに-no を使用することで、これらのライブラリのほとんどに対するサポートを無効にすることも可能です。

Qt 6 の `configure` は、サードパーティ製ライブラリの場所を特定するために CMake に依存しています。これは、さまざまなシステムパスを確認することで行われます。ライブラリを別の場所にインストールした場合は、CMAKE_PREFIX_PATH 変数を設定または拡張することで、CMake にそのことを知らせることができます。

オプションの完全な一覧については、configure -help のヘルプを参照してください。

SSL

Qt Network は、Secure Sockets Layer(SSL)通信をサポートするように設定できますが、実際のアルゴリズム自体は実装していません。代わりに、他のライブラリを活用する必要があります。

Windows では、Qt はこの目的のためにシステムの Secure Channel ライブラリを使用できます(configure オプション-schannel )。macOS および iOS では、Qt を SecureTransport API を使用するように設定できます(configure オプション-securetransport )。

ほぼすべてのターゲットプラットフォームで動作し、最も機能が充実したサポートを提供するのは、OpenSSL Toolkitです(オプション-openssl )。Qtでは、OpenSSL 1.1.1以降が必要です。

Qtでは、3つの方法でOpenSSLを使用するように設定できます。

  • Qt Network 実行時に、初めて必要になった時点で OpenSSL ライブラリ(DLL)を読み込みます。ライブラリが見つからない場合、アプリケーションは実行を継続しますが、SSL 通信の処理には失敗します。これは、configure オプション-openssl-runtime を使用することで有効になります。
  • Qt Network OpenSSLライブラリに対してリンクを行う。ロード時にライブラリが見つからない場合、アプリケーションは起動に失敗する。これは、configureオプション `-openssl-linked` を使用することで有効になる。
  • Qt Network OpenSSLライブラリの静的バージョンに対してコンパイルされ、OpenSSLはQt Network ライブラリの一部となります。これは、configureオプションopenssl-linked を使用し、OPENSSL_USE_STATIC_LIBS 変数をON に設定することで有効になります。

OpenSSLが標準のインストール場所にインストールされておらず、configureによって検出されない場合は、CMake変数OPENSSL_ROOT_DIR を設定してください。

SSL 対応の Qt に関する詳細な手順については、「Secure Sockets Layer (SSL) クラス」を参照してください。

クロスコンパイルのオプション

クロスプラットフォーム開発およびデプロイ用に Qt を設定するには、まずホストマシンに対応する Qt バージョンが必要です。また、ターゲットプラットフォーム用の開発ツールチェーンを設定する必要があります。この設定は、サポート対象プラットフォームによって異なります。

一般的なオプションは以下の通りです。

  • -external-hostbindir - 当該マシン用にビルドされた Qt ツールへのパス。
  • -device - qmake コンパニオンファイル用の devices/mkspec の選択。
  • -device-option - 追加の qmake 変数を設定します。

注: デスクトップ以外のターゲット向けのツールチェーンには 、多くの場合、Qtの構成に必要となるいわゆる「sysroot」が付属しています。

開発者向けビルド

-developer-build というconfigureオプションは、Qt自体の開発向けにビルドを最適化する便利なオプションです。顧客に提供するQtのバリエーションをビルドする際には使用しないでください。

開発者向けビルドのライブラリには、標準ビルドよりも多くのエクスポートシンボルが含まれており、すべての Qt コードはより高い警告レベルでコンパイルされます。また、デフォルトのプレフィックスがビルドディレクトリに変更されるため、テストを行う前に Qt をインストールする必要がなくなります。さらに、Qt の自動テストがデフォルトで有効になります。

既存のビルドの再設定

Qt ビルドシステムは、異なる configure オプションセットを使用して既存の Qt ビルドを再構成するための基本的なサポートを備えていますが、CMake の内部的な動作の性質上、その機能はあまり堅牢ではありません。

既存のビルドを再構成する最も安全な方法は、configure に `-redo ` オプションを指定することです。これにより、ビルドの `CMakeCache.txt` ファイルが削除され、再構成のための比較的安全な状態が確保されます。初期の configure フラグは、再構成されたビルドに対しても引き続き適用されます。

configureの概要およびオプションのインストール

Qt 6.9 以降、configure サマリーファイルおよび `configure` に渡されるオプションは、インストールの一部として自動的に含めることができます。

この機能は、CMake変数QT_INSTALL_CONFIG_INFO_FILES をON に設定することで有効になります:

~/qt-source/configure -prefix /opt/Qt6 -- -D QT_INSTALL_CONFIG_INFO_FILES=ON

インストール中に、configure サマリーおよびオプションに関するテキストファイル(ビルドの各リポジトリ部分ごとに)が `architecture-independent Qt data directory` にコピーされます。

例えば、

/opt/Qt6/config_qtbase.opt
/opt/Qt6/config_qtbase.summary
/opt/Qt6/config_qtdeclarative.opt
/opt/Qt6/config_qtdeclarative.summary
...

プラットフォームごとの具体的なオプション

以下のページでは、特定のプラットフォーム向け開発用に Qt を設定する方法に関するガイドラインを提供しています:

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