このページでは

プラットフォームに関する注意事項

多くのクロスプラットフォームプロジェクトは、qmakeの基本的な設定機能だけで対応できます。しかし、一部のプラットフォームでは、プラットフォーム固有の機能を活用することが有用である場合や、場合によっては必要となることもあります。qmakeはこうした機能の多くを認識しており、それらは関連するプラットフォームでのみ有効となる特定の変数を通じて利用できます。

macOS、iOS、tvOS、および watchOS

これらのプラットフォーム固有の機能には、ユニバーサルバイナリ、フレームワーク、およびバンドルの作成に対するサポートが含まれます。

ソースパッケージとバイナリパッケージ

ソースパッケージに同梱される qmake のバージョンは、バイナリパッケージに同梱されるものとは、機能指定が異なる点で設定が若干異なります。ソースパッケージでは通常 `macx-g++ ` 指定が使用されるのに対し、バイナリパッケージでは通常 `macx-xcode ` 指定を使用するように設定されています。

各パッケージのユーザーは、-spec オプションを指定して qmake を実行することで、この設定を上書きできます(詳細については「qmake の実行」を参照してください)。たとえば、バイナリパッケージに含まれる qmake を使用してプロジェクトディレクトリ内に Makefile を作成するには、次のコマンドを実行します。

qmake -spec macx-g++

フレームワークの使用

qmake は、macOS の標準フレームワークディレクトリ(/Library/Frameworks/ )にあるフレームワークに対してリンクするためのビルドルールを自動的に生成することができます。

標準のフレームワークディレクトリ以外のディレクトリをビルドシステムに指定する必要があります。これは、次の例に示すように、LIBS変数にリンカーオプションを追加することで実現できます。

LIBS += -F/path/to/framework/directory/

フレームワーク自体は、LIBS変数に-framework オプションとフレームワーク名を追加することでリンクされます:

LIBS += -framework TheFramework

フレームワークの作成

任意のライブラリプロジェクトを、生成されるライブラリファイルがフレームワーク内に配置され、デプロイの準備が整った状態になるよう構成できます。これを行うには、プロジェクトでlib テンプレートを使用するように設定し、CONFIG変数にlib_bundle オプションを追加します:

TEMPLATE = lib
CONFIG += lib_bundle

ライブラリに関連付けられたデータは、QMAKE_BUNDLE_DATA変数を使用して指定します。この変数には、ライブラリバンドルとともにインストールされる項目が格納され、多くの場合、次の例のようにヘッダーファイルの集合を指定するために使用されます:

FRAMEWORK_HEADERS.version = Versions
FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h
FRAMEWORK_HEADERS.path = Headers
QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS

FRAMEWORK_HEADERS 変数を使用すると、特定のフレームワークに必要なヘッダーを指定できます。これをQMAKE_BUNDLE_DATA 変数に追加することで、これらのヘッダーに関する情報が、ライブラリバンドルとともにインストールされるリソースの集合に確実に追加されます。 また、フレームワーク名とバージョンは、QMAKE_FRAMEWORK_BUNDLE_NAMEおよびQMAKE_FRAMEWORK_VERSION変数によって指定されます。デフォルトでは、これらの変数に使用される値は、TARGETおよびVERSION変数から取得されます。

アプリケーションやライブラリのデプロイに関する詳細については、「Qt for macOS - デプロイ」を参照してください。

Xcode プロジェクトの作成と移動

macOS では、開発者は既存の qmake プロジェクトファイルから Xcode プロジェクトファイルを生成できます。例:

qmake -spec macx-xcode project.pro

注: 後でプロジェクトをディスク上で移動した場合 、qmakeを再度実行してプロジェクトファイルを処理し、新しいXcodeプロジェクトファイルを作成する必要があります。

2つのビルドターゲットの同時サポート

Xcodeの「アクティブビルド構成」という概念は、qmakeのビルドターゲットの概念とは根本的に異なるため、現時点ではこれを実装することはできません。

Xcodeの「アクティブなビルド構成」設定は、Xcodeの構成、コンパイラフラグ、および同様のビルドオプションを変更するためのものです。Visual Studioとは異なり、Xcodeでは、デバッグまたはリリースビルド構成の選択に基づいて特定のライブラリファイルを選択することはできません。qmakeのデバッグおよびリリース設定は、実行ファイルにリンクされるライブラリファイルを制御します。

現在、qmakeによって生成されたXcodeプロジェクトファイルから、Xcodeの設定でファイルを設定することはできません。これは、Xcodeビルドシステムの「Frameworks & Libraries」フェーズにおけるライブラリのリンク方法によるものです。

さらに、選択された「アクティブなビルド構成」は .pbxuser ファイルに保存されますが、このファイルは qmake によって作成されるものではなく、Xcode が初回読み込み時に生成するものです。

Windows

このプラットフォーム固有の機能には、Windows リソースファイル(提供済みまたは自動生成)のサポート、Visual Studio プロジェクトファイルの作成、および Visual Studio 2005 以降を使用して開発された Qt アプリケーションのデプロイ時のマニフェストファイルの処理が含まれます。

Windows リソースファイルの追加

このセクションでは、qmake を使用して Windows リソースファイルをアプリケーションの実行ファイル (EXE) またはダイナミックリンクライブラリ (DLL) にリンクする方法について説明します。qmake では、必要に応じて、適切な内容が入力された Windows リソースファイルを自動生成することができます。

リンクされた Windows リソース ファイルには、その EXE または DLL からアクセス可能な多くの要素が含まれている場合があります。ただし、プラットフォームに依存しない方法でリンクされたリソースにアクセスするには、Qt リソース システムを使用する必要があります。しかし、リンクされた Windows リソース ファイルの標準的な要素の一部は、Windows 自体によってアクセスされます。 たとえば、Windows エクスプローラーでは、ファイルのプロパティにある「バージョン」タブの内容は、リソース要素によって構成されています。 さらに、EXEのプログラムアイコンもこれらの要素から読み込まれます。したがって、Qtで作成されたWindows用EXEやDLLでは、Qtのリソースシステムを介してプラットフォーム非依存のリソースをリンクすると同時に、Windowsリソースファイルを介してWindows固有のリソースを追加するという、両方の手法を併用することが推奨されます。

通常、リソース定義スクリプト(.rc ファイル)は、Windows リソースファイルにコンパイルされます。 Microsoft ツールチェーンでは、RC ツールが .res ファイルを生成し、これを Microsoft リンカーで EXE または DLL にリンクすることができます。MinGW ツールチェーンでは、windres ツールを使用して .o ファイルを生成し、これを MinGW リンカーで EXE または DLL にリンクすることができます。

qmake による、適切に記述された .rc ファイルの自動生成(オプション)は、システム変数VERSIONおよびRC_ICONS のうち少なくとも 1 つを設定することで実行されます。生成された .rc ファイルは自動的にコンパイルおよびリンクされます。 .rc ファイルに追加される要素は、システム変数QMAKE_TARGET_COMPANY、QMAKE_TARGET_DESCRIPTION、QMAKE_TARGET_COPYRIGHT、QMAKE_TARGET_PRODUCT、QMAKE_TARGET_ORIGINAL_FILENAME、QMAKE_TARGET_INTERNALNAME、QMAKE_TARGET_COMMENTS、QMAKE_TARGET_TRADEMARKS、QMAKE_MANIFEST、RC_CODEPAGE、RC_ICONS、RC_LANG、およびVERSION。

これらの要素だけでは不十分な場合、qmake には、外部で作成された .rc ファイルまたは .res ファイルを直接指定する 2 つのシステム変数RC_FILEおよびRES_FILEがあります。これらの変数のいずれかを設定することで、指定されたファイルが EXE または DLL にリンクされます。

注: RC_FILEまたはRES_FILEが設定されている場合、qmake による .rc ファイルの生成は ブロックされます。この場合、qmake によって指定された .rc ファイル、.res ファイル、または .o ファイルにそれ以上の変更は加えられず、.rc ファイルの生成に関連する変数は効果を持ちません。

Visual Studio プロジェクト ファイルの作成

このセクションでは、既存の qmake プロジェクトを Visual Studio にインポートする方法について説明します。qmake は、プロジェクトファイルを受け取り、開発環境に必要なすべての情報を含む Visual Studio プロジェクトを作成することができます。これは、qmakeプロジェクトテンプレートを`vcapp `(アプリケーションプロジェクト用)または `vclib `(ライブラリプロジェクト用)に設定することで実現されます。

これはコマンドラインオプションを使用して設定することも可能です。例:

qmake -tp vc

次のように入力することで、サブディレクトリ内に.vcproj ファイルを、メインディレクトリ内に.sln ファイルを再帰的に生成することができます。

qmake -tp vc -r

プロジェクトファイルを更新するたびに、qmake を実行して更新された Visual Studio プロジェクトを生成する必要があります。

注: Visual Studio アドインを使用している場合は 、[Qt]>[.pro ファイルからインポート] を選択して、.pro ファイルをインポートしてください。

Visual Studio マニフェスト ファイル

Visual Studio 2005以降を使用してビルドされたQtアプリケーションをデプロイする際は、アプリケーションのリンク時に作成されたマニフェストファイルが正しく処理されるようにしてください。DLLを生成するプロジェクトの場合、これは自動的に処理されます。

アプリケーション実行ファイルからのマニフェストの埋め込みを削除するには、CONFIG変数に次のように割り当てます。

CONFIG -= embed_manifest_exe

また、CONFIG 変数に以下の値を割り当てることで、DLLへのマニフェスト埋め込みを削除できます:

CONFIG -= embed_manifest_dll

これについては、Windows 向けの展開ガイドでより詳しく説明されています。

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