이 페이지에서

qt_finalize_target

Qt 타깃과 관련된 다양한 일반적인 플랫폼별 작업을 처리합니다.

이 명령은 Qt6 패키지의 Core 구성 요소에 정의되어 있으며, 다음과 같이 로드할 수 있습니다:

find_package(Qt6 REQUIRED COMPONENTS Core)

이 명령어는 Qt 6.2에서 도입되었습니다.

개요

qt_finalize_target(target)

버전 정보가 없는 명령어가 비활성화된 경우, 대신 qt6_finalize_target() 를 사용하십시오. 이 명령어는 이 명령어와 동일한 인자 세트를 지원합니다.

설명

타깃이 생성된 후에는 추가 처리나 마무리 단계가 필요한 경우가 있습니다. 수행해야 할 단계는 플랫폼, 타깃의 유형 및 타깃의 다양한 속성에 따라 달라집니다. 이러한 단계는 target 가 생성된 디렉터리 범위 내에서 수행되어야 하므로, 이 명령도 동일한 디렉터리 범위에서 호출해야 합니다.

이 명령은 일반적으로 qt_add_executable(), qt_add_library() 또는 qt_add_plugin() 호출의 일부로 실행됩니다. 해당 호출이 이루어지는 시점과 프로젝트에서 이 명령을 명시적으로 호출해야 할 수 있는 경우에 대해서는 해당 명령의 설명서에서 다루고 있습니다.

실행 파일 타깃

실행 파일 타깃의 경우, ` qt_finalize_target() `는 제공된 플랫폼 및 타깃에 적합하도록 아래 소절에서 설명된 로직을 구현합니다. 향후 Qt 릴리스에서는 최종 처리 과정이 더욱 확장될 수 있습니다.

모든 플랫폼

Qt 플러그인의 자동 링크를 용이하게 하기 위해 일부 내부 처리가 수행됩니다. 이는 정적 링크 방식으로 빌드된 Qt를 사용하거나 3.21 이전 버전의 CMake를 사용하는 경우 특히 중요합니다.

Android

  • target 용 배포 설정 파일을 생성합니다.
  • APK 생성을 위한 빌드 타깃을 생성합니다.

WASM

CMAKE_CURRENT_BINARY_DIR 디렉터리에 ${target}.html (타깃별 wasm_shell.html 파일), qtloader.js 및 qtlogo.svg 파일을 생성합니다.

iOS

Finalization은 다음 타겟 속성이 아직 설정되지 않았고, 해당 CMAKE_... 변수도 설정되지 않은 경우, 이 속성들에 대해 적절한 값을 제공하려고 시도합니다:

  • XCODE_ATTRIBUTE_DEVELOPMENT_TEAM
  • XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER
  • MACOSX_BUNDLE_GUI_IDENTIFIER

필요한 경우, QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID 변수를 사용하여 XCODE_ATTRIBUTE_DEVELOPMENT_TEAM 의 설정을 비활성화할 수 있으며, QT_NO_SET_XCODE_BUNDLE_IDENTIFIER 변수를 사용하여 XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER 및 MACOSX_BUNDLE_GUI_IDENTIFIER 의 설정을 비활성화할 수 있습니다.

공유 라이브러리 종속성 임베딩

공유 라이브러리에 의존하는 애플리케이션은 링크된 공유 라이브러리가 해당 번들의 일부인 경우에만 실행될 수 있습니다.

Qt 6.12부터는 빌드 시스템이 애플리케이션이 링크하는 공유 라이브러리를 수집하여, ‘ CODE_SIGN_ON_COPY ’가 활성화된 상태에서 애플리케이션의 ‘ XCODE_EMBED_FRAMEWORKS ’ 빌드 단계에 추가합니다. 프레임워크 번들과 일반 dylib 라이브러리 모두 처리됩니다.

다음 조건이 모두 충족되는 경우에만 임베딩이 수행됩니다:

  • Qt가 공유 라이브러리 구성으로 빌드되었을 경우.
  • Xcode 생성기를 사용했습니다.
  • XCODE_EMBED_FRAMEWORKS 는 라이브러리당 단일 경로만 저장하므로 두 가지 구성(디버그 및 릴리스)을 모두 설명할 수 없기 때문에, Qt는 디버그 및 릴리스 구성으로 모두 빌드되지 않았어야 합니다.
  • 타깃이 앱 확장 프로그램과 같은 하위 번들이 아닌 애플리케이션 번들인 경우. 하위 번들은 상위 애플리케이션의 프레임워크를 사용해야 합니다.
  • 타깃에 XCODE_EMBED_FRAMEWORKS 속성이 아직 설정되어 있지 않은 경우, 프로젝트가 임베딩을 자체적으로 처리하는 것으로 간주됩니다.

공유 라이브러리를 직접 배포하려면 애플리케이션 타깃에 QT_NO_XCODE_EMBED_FRAMEWORKS 속성을 설정하십시오.

개별 라이브러리를 제외하려면 해당 라이브러리에 QT_NO_XCODE_EMBED_FRAMEWORK_IN_CONSUMERS 속성을 설정하십시오.

라이브러리 타깃

이 Qt 버전 기준, 라이브러리 타깃에 대한 파이널라이제이션은 어떠한 처리도 수행하지 않습니다. 향후 Qt 버전에서는 라이브러리에 대한 파이널라이제이션 처리가 추가될 수 있으므로, 파이널라이제이션이 여전히 예상대로 호출되는지 확인해야 합니다.

qt_set_finalizer_mode()도 참조하십시오 .

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