qt_add_resources
바이너리 리소스를 소스 코드로 컴파일합니다.
이 명령은 Qt6
패키지의 Core
컴포넌트에 정의되어 있으며, 다음과 같이 로드할 수 있습니다:
find_package(Qt6 REQUIRED COMPONENTS Core)
개요
qt_add_resources(<VAR> file1.qrc [file2.qrc ...] [OPTIONS ...])
버전 없는 명령이 비활성화되어 있으면 qt6_add_resources()
을 대신 사용합니다. 이 명령과 동일한 인수 집합을 지원합니다.
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()
대신 사용하세요. 이 명령과 동일한 인수 집합을 지원합니다.
설명
리소스를 추가하려면 변수 이름이나 대상을 명령의 첫 번째 인수로 전달할 수 있습니다.
변수 이름을 첫 번째 인수로 전달할 경우 qt_add_resources
은 Resource Compiler (rcc)를 사용하여 Qt 리소스 파일에서 소스 코드를 생성합니다. 생성된 소스 파일의 경로는 <VAR>
에 추가됩니다.
첫 번째 인수로 대상을 전달할 때, 이 함수는 지정된 FILES
을 포함하는 RESOURCE_NAME
이라는 이름의 리소스를 생성합니다. 이 리소스는 TARGET
에 자동으로 링크됩니다.
Qt 리소스에 대한 일반적인 설명은 Qt 리소스 시스템을 참조하십시오.
대상 기반 변형의 인자
PREFIX
는 C++ 코드에서 이 리소스의 모든 파일에 액세스할 수 있는 경로 접두사를 지정합니다. 이는 .qrc
파일 형식의 XML 어트리뷰트 prefix
에 해당합니다. PREFIX
을 지정하지 않으면 대상 속성 QT_RESOURCE_PREFIX 가 사용됩니다. 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
함수는 특수 대상의 이름을 지정된 변수에 저장합니다.
두 변수의 인수
rcc
호출에 추가해야 할 OPTIONS
을 추가로 설정할 수 있습니다. 가능한 옵션은 rcc 문서에서 찾을 수 있습니다.
예제
변수 변형, .qrc 파일 사용:
set(SOURCES main.cpp) qt_add_resources(SOURCES example.qrc) qt_add_executable(myapp ${SOURCES})
즉시 리소스를 사용하는 타겟 변형:
qt_add_executable(myapp main.cpp) qt_add_resources(myapp "images" PREFIX "/images" FILES image1.png image2.png)
주의
여러 리소스를 추가하는 경우 RESOURCE_NAME
은 최종 대상에 연결된 모든 리소스에서 고유해야 합니다.
이는 특히 정적 빌드에 영향을 줍니다. 다른 정적 라이브러리에 있는 동일한 리소스 이름이 소비 대상에서 충돌할 수 있습니다.
qt_add_big_resources()도 참조하십시오 .
© 2025 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.