qt_add_resources
바이너리 리소스를 소스 코드로 컴파일합니다.
이 명령어는 Qt6 패키지의 Core 구성 요소에 정의되어 있으며, 다음과 같이 불러올 수 있습니다:
find_package(Qt6 REQUIRED COMPONENTS Core)개요
qt_add_resources(<TARGET> <RESOURCE_NAME>
[PREFIX <PATH>]
[LANG <LANGUAGE>]
[BASE <PATH>]
[BIG_RESOURCES]
[DISCARD_FILE_CONTENTS]
[OUTPUT_TARGETS <VARIABLE_NAME>]
[FILES ...] [OPTIONS ...])변수 기반 변형:
qt_add_resources(<VAR> file1.qrc [file2.qrc ...]
[OPTIONS ...])버전 정보가 없는 명령어가 비활성화된 경우, 대신 ` qt6_add_resources() `를 사용하십시오. 이 명령어는 본 명령어와 동일한 인자 집합을 지원합니다.
설명
리소스를 추가하려면 명령어의 첫 번째 인수로 대상(target) 또는 변수 이름을 전달할 수 있습니다.
첫 번째 인수로 타깃을 전달하면, 이 함수는 RESOURCE_NAME 라는 이름의 리소스를 생성하며, 여기에는 지정된 FILES 가 포함됩니다. 이 리소스는 자동으로 TARGET 에 링크됩니다.
첫 번째 인자로 변수 이름을 전달하면, qt_add_resources 는 Resource Compiler (rcc)를 사용하여 Qt 리소스 파일에서 소스 코드를 생성합니다. 생성된 소스 파일의 경로는 <VAR> 에 추가됩니다.
Qt 리소스에 대한 일반적인 설명은 Qt 리소스 시스템을 참조하십시오.
타깃 기반 변형의 인자
PREFIX 는 C++ 코드에서 이 리소스의 모든 파일에 접근할 수 있는 경로 접두사를 지정합니다. 이는 .qrc 파일 형식의 XML 속성 prefix 에 해당합니다. PREFIX 가 지정되지 않은 경우, 타겟 속성 QT_RESOURCE_PREFIX가 사용됩니다. Qt 6.5부터는 PREFIX 가 선택 사항입니다. 이 속성이 생략되고 QT_RESOURCE_PREFIX 를 통해 지정되지 않은 경우, "/" 가 기본 경로 접두사로 사용됩니다.
LANG 이 리소스의 로케일을 지정합니다. 이는 .qrc 파일 형식의 XML 속성 lang 에 해당합니다.
BASE 파일 별칭의 루트 지점을 나타내는 경로 접두사입니다. 예를 들어, BASE 이 "assets" 이고 FILES 이 "assets/images/logo.png" 인 경우, 해당 파일의 별칭은 "images/logo.png" 입니다.
파일의 별칭 설정은 QT_RESOURCE_ALIAS 소스 파일 속성을 통해 설정해야 합니다.
BIG_RESOURCES 을 지정하여 대용량 리소스 지원을 활성화할 수 있습니다. 이 경우 C++ 소스 코드 대신 객체 파일(.o, .obj)이 직접 생성됩니다. 이를 통해 생성된 C++ 소스 코드를 컴파일할 필요 없이 더 큰 리소스를 삽입할 수 있으며, 이는 시간이 많이 소요되고 메모리 사용량이 많을 수 있는 과정을 피할 수 있습니다.
BIG_RESOURCES 는 CMake의 Xcode 프로젝트 생성기의 제한 사항으로 인해 iOS와 호환되지 않는다는 점에 유의하십시오. 자세한 내용은 QTBUG-103497을 참조하십시오. 또한 BIG_RESOURCES 는 CMake 3.17 이상에서만 안정적으로 작동합니다.
이 명령을 정적 라이브러리와 함께 사용할 경우, 하나 이상의 특수 타깃이 생성됩니다. 이러한 타깃에 대해 추가 처리를 수행하려면 OUTPUT_TARGETS 매개변수에 변수 이름을 전달하십시오. qt_add_resources 함수는 지정된 변수에 특수 타깃의 이름을 저장합니다.
DISCARD_FILE_CONTENTS 가 지정되면, 리소스 파일의 실제 내용을 포함하지 않은 채 리소스 시스템에 추가됩니다. 대신, 이러한 파일들은 생성된 리소스 내에 빈 자리 표시자로 저장됩니다.
변수 기반 변형의 인자
변수 기반 변형을 사용할 때는 하나 이상의 .qrc 파일을 인수로 전달합니다. 이 함수는 이러한 Qt 리소스 파일로부터 소스 코드를 생성하고, 생성된 소스 파일의 경로를 지정된 변수에 추가합니다.
두 변형 모두에 공통되는 인자
rcc 호출에 추가되어야 할 추가 OPTIONS 를 설정할 수 있습니다. 가능한 옵션은 rcc 문서에서 확인할 수 있습니다.
예시
즉시 리소스를 사용하는 타겟 변형:
qt_add_executable(myapp main.cpp)
qt_add_resources(myapp "images"
PREFIX "/images"
FILES image1.png image2.png).qrc 파일을 사용하는 변수 변형:
set(sources main.cpp)
qt_add_resources(sources example.qrc)
qt_add_executable(myapp ${sources})주의 사항
여러 리소스를 추가할 경우, 최종 타깃에 링크된 모든 리소스에서 리소스 식별자( RESOURCE_NAME )는 고유해야 합니다.
이는 특히 정적 빌드에 영향을 미칩니다. 정적 빌드의 경우, 서로 다른 정적 라이브러리에서 동일한 리소스 이름을 사용하면 이를 사용하는 타깃에서 충돌이 발생합니다.
qmake의` RESOURCES`와 달리, ` qt_add_resources `은 qmlcachegen을 사용하여 QML 또는 JavaScript 파일을 컴파일하지 않습니다. 이를 위해서는 `qt_add_qml_module() `을 사용하십시오.
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.