将二进制资源编译进源代码。
命令的定义在
Core
组件对于
Qt6
package. Load the package with:
find_package(Qt6 COMPONENTS Core REQUIRED)
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>] [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_add_big_resources .
见 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
被使用。
LANG
specifies the locale of this resource. This corresponds to the XML attribute
lang
的
.qrc
file format.
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.
可以设置额外
选项
应该被添加到
rcc
调用。可以查找可能的选项在
RCC (资源编译器) 文档编制
.
Variable variant, using a .qrc file:
set(SOURCES main.cpp) qt_add_resources(SOURCES example.qrc) add_executable(myapp ${SOURCES})
Target variant, using immediate resources:
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.