qt_add_resources
バイナリリソースをソースコードにコンパイルします。
このコマンドはQt6
パッケージのCore
コンポーネントで定義されています:
find_package(Qt6 REQUIRED COMPONENTS Core)
概要
qt_add_resources(<VAR> file1.qrc [file2.qrc ...] [OPTIONS ...])
バージョンレスコマンドが無効になっている場合は、代わりにqt6_add_resources()
を使用してください。このコマンドと同じ引数セットをサポートしています。
6.0以降:
qt_add_resources(<TARGET> <RESOURCE_NAME> [PREFIX <PATH>] [LANG <LANGUAGE>] [BASE <PATH>] [BIG_RESOURCES] [OUTPUT_TARGETS <VARIABLE_NAME>] [FILES ...] [OPTIONS ...])
バージョンレスコマンドが無効な場合は、代わりにqt6_add_resources()
。このコマンドと同じ引数セットをサポートしています。
説明
リソースを追加するには、コマンドの第1引数に変数名かターゲットを渡します。
第一引数に変数名を渡した場合、qt_add_resources
はResource Compiler (rcc) を使用して Qt リソースファイルからソースコードを生成します。生成されたソース・ファイルへのパスは<VAR>
に追加されます。
最初の引数としてターゲットを渡すと、この関数は、指定されたFILES
を含むRESOURCE_NAME
という名前のリソースを作成します。このリソースは自動的にTARGET
にリンクされます。
Qt リソースの一般的な説明はQt Resource Systemを参照してください。
ターゲットベースの引数
PREFIX
は、このリソースのすべてのファイルが C++ コードからアクセスできるパス接頭辞を指定します。これは、 ファイルフォーマットの XML 属性 に対応します。 が与えられない場合、ターゲット・プロパティ.qrc
prefix
PREFIX
QT_RESOURCE_PREFIXが使用されます。6.5 以降、 はオプションです。これが省略され、 で指定されなかった場合、 がデフォルトのパスプレフィックスとして使用されます。PREFIX
QT_RESOURCE_PREFIX
"/"
LANG
はこのリソースのロケールを指定します。これは ファイル形式の XML 属性 に対応する。.qrc
lang
BASE
は、ファイルのエイリアスのルートポイントを示すパス接頭辞です。例えば、 が で、 が の場合、そのファイルのエイリアスは となります。BASE
"assets"
FILES
"assets/images/logo.png"
"images/logo.png"
ファイルのエイリアス設定は、QT_RESOURCE_ALIAS
ソース・ファイル・プロパティで設定する必要があります。
BIG_RESOURCES
を指定することで、大きなリソースのサポートを有効にすることができます。これは、C++ ソース・コードの代わりにオブジェクト・ファイル ( , ) を直接生成します。これにより、生成されたC++ソースをコンパイルすることなく、より大きなリソースを埋め込むことができます。.o
.obj
BIG_RESOURCES
は、CMake の Xcode プロジェクトジェネレータの制限により、iOS と互換性がないことに注意してください。詳細はQTBUG-103497を参照してください。また、BIG_RESOURCES
は CMake 3.17 以降でのみ確実に動作します。
静的ライブラリでこのコマンドを使用すると、1つ以上の特別なターゲットが生成されます。これらのターゲットに対して追加処理を行いたい場合は、OUTPUT_TARGETS
パラメーターに変数名を渡してください。qt_add_resources
関数は、特殊ターゲットの名前を指定された変数に格納します。
両方の引数
rcc
呼び出しに追加するOPTIONS
を設定することができる。可能なオプションはrccのドキュメントにあります。
例
.qrcファイルを使う変数型:
set(SOURCES main.cpp) qt_add_resources(SOURCES example.qrc) qt_add_executable(myapp ${SOURCES})
ターゲットバリアント、即時リソースを使う:
qt_add_executable(myapp main.cpp) qt_add_resources(myapp "images" PREFIX "/images" FILES image1.png image2.png)
注意点
複数のリソースを追加する場合、RESOURCE_NAME
は最終ターゲットにリンクされるすべてのリソースで一意でなければなりません。
これは特に静的ビルドに影響します。異なるスタティックライブラリの同じリソース名が消費ターゲットで衝突します。
qt_add_big_resources()も参照してください 。
© 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.