「Qtの設定 - qmake」の版間の差分

ナビゲーションに移動 検索に移動
37行目: 37行目:
大規模なプロジェクトでは、プリコンパイルされたヘッダファイルを使用することにより、ビルドプロセスを高速化することが可能である。<br>
大規模なプロジェクトでは、プリコンパイルされたヘッダファイルを使用することにより、ビルドプロセスを高速化することが可能である。<br>
詳細を知りたい場合は、「プリコンパイルされたヘッダファイルの使用」を参照すること。<br>
詳細を知りたい場合は、「プリコンパイルされたヘッダファイルの使用」を参照すること。<br>
<br><br>
== Qtプロジェクトファイルの基本的な変数 ==
==== CONFIG ====
変数<code>CONFIG</code>は、Qtプロジェクトの設定とコンパイラのオプションを指定する。<br>
変数<code>CONFIG</code>の値は、qmakeが内部で認識して、特別な意味を持つ。<br>
<br>
下表に、コンパイラとリンカのフラグを制御する変数<code>CONFIG</code>で使用できる値を示す。<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! style="background-color:#66CCFF;" | 変数CONFIGに指定できるオプション
! style="background-color:#66CCFF;" | 説明
|-
| release || Qtプロジェクトをリリースモードでビルドする。<br><code>debug</code>も指定した場合は、最後に指定されたものが有効になる。
|-
| debug || Qtプロジェクトをデバッグモードでビルドする。
|-
| debug_and_release || デバッグモードとリリースモードの両方でビルドする。
|-
| debug_and_release_target || この値はデフォルトで設定されている。<br>もし、<code>debug_and_release</code>も同時に指定している場合、デバッグとリリースのビルドは別々のdebugとreleaseディレクトリに出力される。
|-
| build_all || <code>debug_and_release</code>も同時に指定している場合、デフォルトでデバッグとリリースの両方のモードでビルドされる。
|-
| autogen_precompile_source || Qtプロジェクトファイルで指定したプリコンパイルされたヘッダファイルを含む.cppファイルを自動的に生成する。
|-
| ordered || 変数<code>SUBDIRS</code>を使用する場合、<code>ordered</code>オプションはリストされたディレクトリが与えられた順番で処理するように指定する。<br><br><u>※注意</u><br><u><code>ordered</code>オプションの使用は非推奨である。</u><br><u>代わりに、変数<code>SUBDIRS</code>を使用して、依存関係を指定する。</u>
|-
| precompile_header || プリコンパイルされたヘッダファイルを使用する。
|-
| precompile_header_c<br>(Visual C++のみのオプション) || C言語のプリコンパイルされたヘッダファイルを使用する。
|-
| warn_on || コンパイラはできるだけ多くの警告を出力する。<br><code>warn_off</code>オプションも同時に指定した場合は、最後に指定したものが有効になる。
|-
| warn_off || コンパイラは警告をできるだけ出力しない。
|-
| exceptions || デフォルトで有効に設定されている。<br>例外サポートが有効になる。
|-
| exceptions_off || 例外サポートを無効にする。
|-
| ltcg || デフォルトで無効に設定されている。<br>リンクタイムコード生成を有効にする。
|-
| rtti || 未指定の場合は、コンパイラのデフォルトが使用される。<br>RTTIサポートを有効にする。
|-
| rtti_off || 未指定の場合は、コンパイラのデフォルトが使用される。<br>RTTIサポートを無効にする。
|-
| stl || 未指定の場合は、コンパイラのデフォルトが使用される。<br>STLサポートを有効にする。
|-
| stl_off || 未指定の場合は、コンパイラのデフォルトが使用される。<br>STLサポートを無効にする。
|-
| thread || スレッドサポートを有効にする。<br>変数<code>CONFIG</code>に<code>qt</code>が含まれている場合は、デフォルトで有効に設定されている。
|-
| no_utf8_source || QtプロジェクトのソースファイルにUTF-8エンコーディングを使用せずに、コンパイラのデフォルトの設定を使用する。
|-
| hide_symbols || 未指定の場合は、コンパイラのデフォルトが使用される。<br>バイナリ内のシンボルのデフォルトの可視性を非表示に設定する。
|-
| depend_includepath || デフォルトで有効に設定されている。<br>変数<code>INCLUDEPATH</code>の値を変数<code>DEPENDPATH</code>に付加することを有効にする。
|-
| lrelease || 変数<code>TRANSLATIONS</code>と変数<code>EXTRA_TRANSLATIONS</code>にリストされている全てのファイルに対して、<code>lrelease</code>コマンド(翻訳)を実行する。<br>変数<code>QMAKE_LRELEASE_FLAGS</code>に<code>lrelease</code>コマンドのオプションを記述する。<br><br><code>embed_translations</code>オプションが未指定の場合、生成されたQMファイルを変数<code>QM_FILES_INSTALL_PATH</code>にインストールする。
|-
| embed_translations || 変数<code>QM_FILES_RESOURCE_PREFIX</code>で指定したディレクトリに、<code>lrelease</code>コマンドの実行により生成された翻訳ファイルを実行ファイルに埋め込む。<br><code>lrelease</code>オプションも設定する必要がある。
|}
</center>
<br>
==== TARGET ====
ターゲットファイルの名前を指定する。<br>
未指定の場合は、Qtプロジェクトファイルのベースネームが使用される。<br>
# 以下の例では、UnixではMySoftware、WindowsではMySoftware.exeという名前の実行ファイルを生成する
TARGET = MySoftware
<br>
==== SOURCES ====
変数<code>SOURCES</code>は、Qtプロジェクトに含まれる全てのソースコードファイルの名前を指定する。<br>
例.
SOURCES += main.cpp \
            mainwindow.cpp
<br>
==== HEADERS ====
変数<code>HEADERS</code>は、Qtプロジェクトのヘッダファイルの名前を指定する。<br>
<br>
qmakeは、ヘッダファイルに定義しているクラスがmocを必要とするかどうかを自動的に検出した後、<br>
mocが必要な場合はmocファイルを生成して、リンクするために適切な依存関係とファイルをQtプロジェクトに追加する。<br>
HEADERS += main.h \
            mainwindow.h
<br>
==== SUBDIRS ====
subdirsテンプレートと同時に使用する場合、ビルドする必要のあるQtプロジェクトの一部を含む全てのサブディレクトリまたはQtプロジェクトファイルの名前を指定する。<br>
この変数で指定した各サブディレクトリは、それ自身のQtプロジェクトファイルを含んでいる必要がある。<br>
<br>
各サブディレクトリ内のQtプロジェクトファイルは、サブディレクトリ自身と同じベースネームを持つ場合、ファイル名を省略することができる。<br>
(例えば、サブディレクトリがMySoftwareという名前の場合、そのディレクトリのQtプロジェクトファイルはMySoftware.proという名前の場合)<br>
<br>
また、任意のディレクトリにあるQtプロジェクトファイルへの相対パスを指定することもできる。<br>
ただし、現在のプロジェクトの親ディレクトリとそのサブディレクトリにあるパスだけを指定することを推奨する。<br>
<br>
<u>依存関係が無い場合では、全てのビルドは上から記述した順番に行われる。</u><br>
SUBDIRS = MyTool \
          MySoftware
<br>
各サブディレクトリを特定の順序で構築する必要がある場合、関連する変数<code>SUBDIRS</code>の要素に<code>.depends</code>修飾子を使用する。<br>
<br>
以下の例では、MyLibraryがMySoftwareの前にビルドされて、MySoftwareがMyTestの前にビルドされることを保証している。<br>
MyDocumentは、他のサブディレクトリと並行してビルドすることができるため、ビルドプロセスを高速化することができる。<br>
SUBDIRS += MySoftware \
            MyLibrary \
            MyTest \
            MyDocument
MySoftware.depends = MyLibrary
MyTest.depends    = MySoftware
<br>
複数の依存関係を指定することもでき、それらは全て依存するターゲットの前にビルドされる。<br>
<br>
<u>※注意</u><br>
<u>変数<code>CONFIG</code>に<code>ordered</code>オプションを使用することは非推奨である。<br>
<u>これは、マルチコアのビルドを遅くする可能性がある。</u><br>
<br><br>
<br><br>


案内メニュー