Qt 設定オプション
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、コンパイラ、必要なビルドツールがすぐに利用できるビルド環境で呼び出す必要があります。Building Qt Sourcesに、プラットフォームごとの依存関係が記載されています。
そのような環境を設定した後、典型的なワークフローは、別のビルドディレクトリを作成し、まずconfigureを実行し、次にQtをビルドし、Qtをインストールすることです:
~/qt-source/configure cmake --build . --parallel cmake --install .
configureのフラグを変えてみたり、複数回configureを実行してみたくなるかもしれません。CMakeはconfigureオプションと環境に関する情報をCMakeCache.txtというファイルにキャッシュします。キャッシュされた情報なしでやり直したい場合は、このファイルを削除してください。
ソース、ビルド、インストールディレクトリ
ソースディレクトリには、ソースパッケージまたは git リポジトリから取得したソースコードが格納されています。ビルド・ディレクトリには、ビルド・システム・ファイル、オブジェクト・ファイル、その他の中間ファイルなどのビルド関連ファイルが格納されます。installディレクトリには、システムまたはアプリケーションで使用するバイナリやライブラリがインストールされます。
シャドウビルドを行い、-prefixオプションを使用することで、これらのディレクトリを分けておくことをお勧めします。これにより、Qt のソースツリーを、ビルドの成果物やバイナリからクリーンに保つことができます。この方法は、同じソースツリーから複数のビルドを行いたい場合に非常に便利です。シャドウビルドするには、別のディレクトリから configure を実行する:
mkdir ~/qt-build cd ~/qt-build ~/qt-source/configure -prefix /opt/Qt6
prefixオプションを付けてconfigureを実行すると、Qtのバイナリとライブラリが別のディレクトリにインストールされます。
例、テスト、ツール
デフォルトでは、configuration は Qt のライブラリとツールだけを設定します。make examplesや-make testsを使用すると、Qt に付属するサンプルやテストもビルドできます:
~/qt-source/configure -make examples -make tests
Qt Configuration Tool は、デフォルトではビルドされません。CMake 変数QT_BUILD_EXAMPLES_BY_DEFAULT、QT_BUILD_TESTS_BY_DEFAULT、QT_BUILD_TOOLS_BY_DEFAULTを OFF に設定すると、それぞれのパーツはcmake --build .
によってビルドされません。その代わりに、CMake は個別のターゲットを生成し、それを個別にビルドすることができます。
ここでは、Qt ライブラリとツール、そしてNotePad Example をビルドします:
~/qt-source/configure -make examples -- -D QT_BUILD_EXAMPLES_BY_DEFAULT=OFF cmake --build . --parallel cmake --build . --parallel --target notepad
Note: -developer-build オプションは、デフォルトでテストをビルドします。以下のDeveloper Buildsも参照してください。
ビルドの設定
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 プラグインの両方が含まれています。そのため、-skip qtwayland
を configure オプションとして指定すると、両方のQt モジュールが除外されます。
~/qt-source/configure -skip qtwayland
configure
submodulesオプションを使用すると、リストされたサブモジュールとその依存関係のみをビルドするように設定できます。例えば、qtmultimedia
サブモジュールを指定します、 Qt Multimediaとその依存関係がすべてビルドに含まれます。複数のサブモジュールをコンマで区切ることができます。
~/qt-source/configure -submodules qtmultimedia,qtactiveqt
フィーチャのインクルード/除外
feature -<feature>オプションと-no-feature -<feature>オプションは、それぞれ特定の機能を含めたり除外したりします。
例えば、-no-feature-accessibilityconfigure オプションを使うと、Qt のAccessibilityサポートを無効にできます:
~/qt-source/configure -no-feature-accessibility
configure -list-featuresを使うと、コマンドラインに利用可能な機能の一覧が表示されます。configure -list-features を使用すると、コマンドラインに利用可能なすべての機能のリストが表示されます。機能は他の機能に依存することがあるため、ある機能を無効にすると他の機能に副作用が出る可能性があることに注意してください。
サードパーティライブラリ
Qt のソースパッケージにはサードパーティのライブラリが含まれています。Qt がライブラリのシステムのバージョンを使用するか、バンドルされているバージョンを使用するかを設定するには、設定するライブラリ名の前に-systemまたは-qtを渡します。
以下の表は、いくつかのサードパーティオプションをまとめたものです:
ライブラリ名 | Qt にバンドル | システムにインストール |
---|---|---|
zlib | -qt-zlib | -system-zlib |
libjpeg | -qt-libjpeg | -システム-libjpeg |
libpng | -qt-libpng | -システム-libpng |
フリータイプ | -qt-freetype | -システムフリータイプ |
PCRE | -qt-pcre | -システム PCRE |
HarfBuzz-NG | -qt-harfbuzz | -system-harfbuzz |
qt の代わりに-no を使うことで、これらのライブラリのサポートを無効にすることもできます。
Qt 6 の configure は CMake に依存してサードパーティライブラリを探します。これは、様々なシステムパスをチェックすることで行います。他の場所にライブラリをインストールした場合は、CMAKE_PREFIX_PATH変数を設定または拡張することで、CMakeにそれを知らせることができます。
オプションの完全なリストについては、configure -helpのヘルプを参照してください。
SSL
Qt Network はセキュア・ソケット・レイヤー(SSL)の通信をサポートするように設定できますが、実際のアルゴリズム自体は実装しません。代わりに他のライブラリを利用する必要があります。
Windows では、Qt はこの目的のためにシステムの Secure Channel ライブラリを使用できます(configure オプション-schannel)。macOS と iOS では、Qt は SecureTransport API を使用するように設定できます(configure オプション-securetransport)。
ほぼすべてのターゲットプラットフォームで動作する、最も機能的に完全なサポートは、OpenSSL ツールキットによって提供されます (option-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は ライブラリの一部になります。これは、configureオプションQt Network openssl-linkedを使用し、OPENSSL_USE_STATIC_LIBS変数をONに設定することで有効になります。
OpenSSLが標準の場所にインストールされておらず、configureで見つからない場合は、CMake変数OPENSSL_ROOT_DIRを設定します。
SSL をサポートした Qt に関する詳しい説明はSecure Sockets Layer (SSL) Classesを参照してください。
クロスコンパイルオプション
クロスプラットフォームの開発とデプロイメント用に Qt を設定するには、まずホストマシンの Qt バージョンが一致している必要があります。また、ターゲットプラットフォーム用の開発ツールチェーンをセットアップする必要があります。この設定は、サポートされているプラットフォームによって異なります。
一般的なオプションは以下の通りです:
- -external-hostbindir- このマシン用にビルドされた Qt ツールへのパス。
- -device- qmakeコンパニオン・ファイルのdevice/mkspecを選択します。
- -device-option- qmake の追加変数を設定します。
注意: デスクトップ以外のターゲット用のツールチェーンには、Qt を設定する必要がある、いわゆるsysrootが付属していることがよくあります。
開発者向けビルド
-developer-buildconfigure オプションは、Qt 自体の開発用にビルドを最適化する便利なオプションです。顧客に出荷する Qt のビルドには使用しないでください。
開発者ビルドのライブラリは標準ビルドよりも多くのエクスポートシンボルを含み、すべての Qt コードはより高い警告レベルでコンパイルされます。また、ビルドディレクトリのデフォルトのプレフィックスを変更することで、テスト前に Qt をインストールする必要がなくなります。
既存のビルドの再設定
Qt ビルドシステムには、既存の Qt ビルドを別の configure オプションで再設定するための基本的なサポートがあります。
既存のビルドを再設定する最も安全な方法は、configure に-redoオプションを渡すことです。これにより、ビルドのCMakeCache.txtファイルが削除され、再設定が比較的安全な状態で行えるようになります。最初の configure フラグは、再設定されたビルドにも適用されます。
プラットフォーム固有のオプション
次のページでは、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.