En esta página

qt_add_resources

Compila recursos binarios en código fuente.

El comando está definido en el componente Core del paquete Qt6, que puede cargarse de la siguiente manera:

find_package(Qt6 REQUIRED COMPONENTS Core)

Sinopsis

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

Variante basada en variables:

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

Si los comandos sin versión están desactivados, utilice qt6_add_resources() en su lugar. Admite el mismo conjunto de argumentos que este comando.

Descripción

Para añadir recursos, puede pasar un objetivo o un nombre de variable como primer argumento del comando.

Cuando se pasa un objetivo como primer argumento, la función crea un recurso con el nombre RESOURCE_NAME, que contiene el FILES especificado. El recurso se vincula automáticamente a TARGET.

Cuando se pasa un nombre de variable como primer argumento, qt_add_resources crea código fuente a partir de archivos de recursos Qt utilizando el Resource Compiler (rcc). Las rutas a los archivos fuente generados se añaden a <VAR>.

Ver El Sistema de Recursos Qt para una descripción general de los recursos Qt.

Argumentos de la variante basada en el objetivo

PREFIX especifica un prefijo de ruta bajo el cual todos los archivos de este recurso son accesibles desde el código C++. Esto corresponde al atributo XML prefix del formato de archivo .qrc. Si no se indica PREFIX, se utiliza la propiedad de destino QT_RESOURCE_PREFIX. Desde Qt 6.5, PREFIX es opcional. Si se omite y no se especifica mediante QT_RESOURCE_PREFIX, se utilizará "/" como prefijo de ruta por defecto.

LANG especifica la configuración regional de este recurso. Corresponde al atributo XML lang del formato de archivo .qrc.

BASE es un prefijo de ruta que denota el punto raíz del alias del archivo. Por ejemplo, si BASE es "assets" y FILES es "assets/images/logo.png", entonces el alias de ese archivo es "images/logo.png".

La configuración del alias de los archivos debe establecerse a través de la propiedad del archivo fuente QT_RESOURCE_ALIAS.

BIG_RESOURCES puede especificarse para habilitar la compatibilidad con recursos de gran tamaño. Esto genera directamente archivos objeto (.o, .obj) en lugar de código fuente C++. Esto permite incrustar recursos más grandes, sin tener que compilar las fuentes C++ generadas, lo que puede consumir mucho tiempo y memoria.

Ten en cuenta que BIG_RESOURCES no es compatible con iOS debido a las restricciones del generador de proyectos Xcode de CMake. Ver QTBUG-103497 para más detalles. Además, BIG_RESOURCES sólo funciona de forma fiable a partir de CMake 3.17.

Al utilizar este comando con bibliotecas estáticas, se generarán uno o más objetivos especiales. Si desea realizar un procesamiento adicional en estos objetivos, pase un nombre de variable al parámetro OUTPUT_TARGETS. La función qt_add_resources almacena los nombres de los objetivos especiales en la variable especificada.

Si se especifica DISCARD_FILE_CONTENTS, los archivos de recursos se añadirán al sistema de recursos sin incrustar su contenido real. En su lugar, estos archivos se almacenarán como marcadores de posición vacíos dentro del recurso generado.

Argumentos de la variante basada en variables

Cuando se utiliza la variante basada en variables, se pasan uno o más archivos .qrc como argumentos. La función genera código fuente a partir de estos archivos de recursos Qt y añade las rutas a los archivos fuente generados a la variable especificada.

Argumentos de ambas variantes

Puede establecer OPTIONS adicionales que deben añadirse a las llamadas a rcc. Puede encontrar las posibles opciones en la documentación de rcc.

Ejemplos

Variante objetivo, utilizando recursos inmediatos:

qt_add_executable(myapp main.cpp)
qt_add_resources(myapp "images"
    PREFIX "/images"
    FILES image1.png image2.png)

Variante variable, utilizando un archivo .qrc:

set(sources main.cpp)
qt_add_resources(sources example.qrc)
qt_add_executable(myapp ${sources})

Advertencias

Cuando se añaden múltiples recursos, RESOURCE_NAME debe ser único en todos los recursos enlazados en el objetivo final.

Esto afecta especialmente a las compilaciones estáticas. Allí, el mismo nombre de recurso en diferentes bibliotecas estáticas conflicto en el objetivo de consumo.

A diferencia de RESOURCES de qmake, qt_add_resources no intenta compilar ningún archivo QML o JavaScript utilizando qmlcachegen. Utilice qt_add_qml_module para esto.

Ver también qt_add_big_resources().

© 2026 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.