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引数に変数名かターゲットを渡します。
第1引数に変数名を渡すと、qt_add_resources
、リソースコンパイラ(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()も参照してください 。
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。