qt_add_library

라이브러리를 생성하고 마무리합니다.

이 명령은 Qt6 패키지의 Core 컴포넌트에 정의되어 있으며, 다음과 같이 로드할 수 있습니다:

find_package(Qt6 REQUIRED COMPONENTS Core)

이 명령은 Qt 6.2에 도입되었습니다.

개요

qt_add_library(target
    [STATIC | SHARED | MODULE | INTERFACE | OBJECT]
    [MANUAL_FINALIZATION]
    sources...
)

버전 없는 명령이 비활성화되어 있으면 qt6_add_library() 을 대신 사용합니다. 이 명령과 동일한 인수 집합을 지원합니다.

설명

qt_add_library() 는 CMake의 기본 제공 add_library() 명령을 래퍼로 만든 것입니다. 이 명령은 다음 작업을 수행합니다:

  • 적절한 라이브러리 유형의 CMake 타깃을 생성합니다.
  • CMake 대상의 최종화를 처리합니다.

타겟 생성

생성되는 라이브러리 유형은 add_library() 에서와 마찬가지로 STATIC, SHARED, MODULE, INTERFACE 또는 OBJECT 키워드 중 하나를 사용하여 명시적으로 지정할 수 있습니다. 이러한 키워드가 지정되지 않은 경우, 생성되는 라이브러리 유형은 Qt가 빌드된 방식에 따라 달라집니다. Qt가 정적으로 빌드된 경우 정적 라이브러리가 생성됩니다. 그렇지 않으면 공유 라이브러리가 생성됩니다. 이는 BUILD_SHARED_LIBS 변수가 생성되는 라이브러리 유형을 제어하는 CMake의 add_library() 명령의 작동 방식과 다릅니다. 6.7부터 qt_add_library() 명령은 변수가 명시적으로 설정되어 있고 QTP0003이 NEW 로 설정된 경우에만 라이브러리 유형을 결정할 때 BUILD_SHARED_LIBS 을 고려합니다.

제공된 모든 sourcesadd_library() 에 대한 내부 호출로 전달됩니다.

최종화

타겟이 생성된 후 추가 처리 또는 최종화 단계가 필요할 수 있습니다. 최종화 처리는 qt_finalize_target() 명령으로 구현됩니다.

최종화는 이 호출의 일부로 수행되거나 이 명령이 반환된 후로 연기될 수 있습니다(하지만 여전히 동일한 디렉토리 범위에 있어야 합니다). CMake 3.19 이상을 사용하는 경우 최종화는 자동으로 현재 디렉터리 범위의 끝으로 연기됩니다. 따라서 호출자는 생성된 대상의 속성을 최종화하기 전에 수정할 수 있습니다. 3.19 이전 CMake 버전을 사용하는 경우 자동 지연이 지원되지 않습니다. 이 경우 이 명령이 반환되기 직전에 최종화가 수행됩니다.

CMake 버전에 관계없이 MANUAL_FINALIZATION 키워드를 지정하여 나중에 명시적으로 qt_finalize_target() 대신 직접 호출할 것임을 나타낼 수 있습니다. 일반적으로 프로젝트가 CMake 3.18 이하를 지원해야 하는 경우가 아니라면 MANUAL_FINALIZATION 은 필요하지 않습니다.

qt_finalize_target(), qt_add_executable()QTP0003도참조하십시오 .

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