qt_add_resources

将二进制资源编译进源代码。

The command is defined in the Core 组件对于 Qt6 package. Load the package with:

find_package(Qt6 COMPONENTS Core REQUIRED)
					

概要

qt_add_resources(<VAR> file1.qrc [file2.qrc ...]
                  [OPTIONS ...])
					

versionless commands are disabled, use qt6_add_resources() instead. It supports the same set of arguments as this command.

Since 6.0:

qt_add_resources(<TARGET> <RESOURCE_NAME>
                  [PREFIX <PATH>]
                  [LANG <LANGUAGE>]
                  [BASE <PATH>]
                  [FILES ...] [OPTIONS ...])
					

versionless commands are disabled, use qt6_add_resources() instead. It supports the same set of arguments as this command.

描述

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.

两种变体自变量

可以设置额外 OPTIONS that should be added to the rcc calls. You can find possible options in the 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.