qt_set_finalizer_mode
타깃의 파이널라이제이션 관련 설정을 사용자 정의합니다.
이 명령어는 Qt6 패키지의 Core 구성 요소에 정의되어 있으며, 다음과 같이 불러올 수 있습니다:
find_package(Qt6 REQUIRED COMPONENTS Core)이 명령어는 Qt 6.2에서 도입되었습니다.
참고: 이 명령어는 기술 미리보기 단계에 있으며 향후 릴리스에서 변경될 수 있습니다.
구문
qt_set_finalizer_mode(target
ENABLE | DISABLE
MODES modes...
)버전 정보가 없는 명령이 비활성화된 경우, 대신 ` qt6_set_finalizer_mode() `를 사용하십시오. 이 명령은 본 명령과 동일한 인자 집합을 지원합니다.
설명
이 명령어는 특정 target 의 최종 처리 과정 중 일부를 사용자 정의하는 데 사용됩니다. 이 명령어는 target 가 최종 처리되기 전에 호출된 경우에만 효과가 있으며, 최종 처리는 다음 시나리오 중 하나에서 발생합니다:
- 프로젝트에서
target에 대해 qt_finalize_target() 을 명시적으로 호출하는 경우입니다. 이는 일반적으로target가 정의될 때 qt_add_executable() 에MANUAL_FINALIZATION키워드가 전달되었음을 의미합니다. - CMake 3.17 이하 버전을 사용하는 경우이며, 이 경우 최종 처리는 항상 qt_add_executable() 호출의 일부로 즉시 수행됩니다.
- CMake 3.18 이상이 사용 중이고,
target가 정의될 때 qt_add_executable() 에MANUAL_FINALIZATION키워드가 전달되지 않았으며,target의 디렉터리 범위 끝에서 지연된 최종 처리가 완료된 경우입니다.
qt_set_finalizer_mode() 는 모드 목록을 활성화하거나 비활성화하는 데 사용되며, 여기서 모드는 파기 처리의 특정 측면에 해당합니다. 현재 지원되는 파기 처리 모드는 다음과 같습니다:
| 모드 | 기본값 | 종료 처리 동작 |
|---|---|---|
static_plugins | 활성화됨 | Qt를 정적 방식으로 빌드할 때, Qt는 정적 플러그인을 위한 초기화 객체 라이브러리를 생성합니다. target 가 실행 파일이고 이 파기 모드가 활성화된 경우, target 에 필요한 모든 플러그인 초기화 객체 라이브러리가 해당 실행 파일에 직접 링크됩니다. 이는 Qt에서 제공하는 정적 라이브러리 간의 순환 참조를 방지하며 링크 시간을 단축할 수 있습니다. 이 파이널라이저 모드가 비활성화되면, 각 플러그인 초기화기는 대신 관련 Qt 라이브러리의 사용 요구 사항을 통해 전파되는데, 이로 인해 순환 참조가 발생할 수 있습니다. Qt가 정적으로 빌드되지 않은 경우, 이 파이널라이저 모드는 관련이 없으며 사용되지 않습니다. |
예시
다음 예제는 CMake 3.19 이상(지연 파이널라이제이션에 필수)을 사용한다고 가정합니다:
qt_add_executable(my_app main.cpp)
qt_set_finalizer_mode(my_app ENABLE MODES static_plugins)수동 파이널라이제이션을 사용하는 동일한 예제는 다음과 같을 수 있습니다:
qt_add_executable(my_app MANUAL_FINALIZATION main.cpp)
qt_set_finalizer_mode(my_app ENABLE MODES static_plugins)
qt_finalize_target(my_app)qt_finalize_target()도 참조하십시오 .
© 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.