將二進製資源編譯進源代碼。
命令的定義在
Core
組件對於
Qt6
包,可以像這樣加載:
find_package(Qt6 REQUIRED COMPONENTS Core)
qt_add_resources(<VAR> file1.qrc [file2.qrc ...]
[OPTIONS ...])
若
無版本命令
被禁用,使用
qt6_add_resources()
代替。它支持如此命令的一組相同自變量。
Since 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()
代替。它支持如此命令的一組相同自變量。
To add resources, you can pass either a variable name or a target as the first argument of the command.
When passing a variable name as first argument,
qt_add_resources
creates source code from Qt resource files using the
RCC (資源編譯器)
。將生成源文件的路徑添加到
<VAR>
.
When passing a target as first argument, the function creates a resource with the name
RESOURCE_NAME
, containing the specified
FILES
. The resource is automatically linked into
TARGET
.
見 Qt 資源係統 for a general description of Qt resources.
PREFIX
specifies a path prefix under which all files of this resource are accessible from C++ code. This corresponds to the XML attribute
prefix
的
.qrc
file format. If
PREFIX
is not given, the target property
QT_RESOURCE_PREFIX
is used. Since 6.5,
PREFIX
is optional. If it is omitted and not specified by
QT_RESOURCE_PREFIX
,
"/"
will be used as the default path prefix.
LANG
specifies the locale of this resource. This corresponds to the XML attribute
lang
的
.qrc
文件格式。
BASE
is a path prefix that denotes the root point of the file's alias. For example, if
BASE
is
"assets"
and
FILES
is
"assets/images/logo.png"
, then the alias of that file is
"images/logo.png"
.
Alias settings for files need to be set via the
QT_RESOURCE_ALIAS
source file property.
BIG_RESOURCES
can be specified to enable support for big resources. This directly generates object files (
.o
,
.obj
) instead of C++ source code. This allows embedding bigger resources, without having to compile generated C++ sources, which can be too time consuming and memory intensive.
注意,
BIG_RESOURCES
is not compatible with iOS due to restrictions of CMake's Xcode project generator. See
QTBUG-103497
for details. Also,
BIG_RESOURCES
only works reliably from CMake 3.17 onwards.
When using this command with static libraries, one or more special targets will be generated. Should you wish to perform additional processing on these targets, pass a variable name to the
OUTPUT_TARGETS
parameter. The
qt_add_resources
function stores the names of the special targets in the specified variable.
可以設置額外
OPTIONS
應該被添加到
rcc
調用。可以查找可能的選項在
RCC (資源編譯器) 文檔編製
.
Variable variant, using a .qrc file:
set(sources main.cpp)
qt_add_resources(sources example.qrc)
qt_add_executable(myapp ${sources})
Target variant, using immediate resources:
qt_add_executable(myapp main.cpp)
qt_add_resources(myapp "images"
PREFIX "/images"
FILES image1.png image2.png)
When adding multiple resources,
RESOURCE_NAME
must be unique across all resources linked into the final target.
This especially affects static builds. There, the same resource name in different static libraries conflict in the consuming target.
In contrast to
qmake
's
RESOURCES
,
qt_add_resources
does not attempt to compile any QML or JavaScript files using
qmlcachegen
。使用
qt_add_qml_module
for this.
另請參閱 qt_add_big_resources() .