qt_add_library
Erzeugt und schließt eine Bibliothek ab.
Der Befehl ist in der Komponente Core
des Pakets Qt6
definiert, die wie folgt geladen werden kann:
find_package(Qt6 REQUIRED COMPONENTS Core)
Dieser Befehl wurde in Qt 6.2 eingeführt.
Synopse
qt_add_library(target [STATIC | SHARED | MODULE | INTERFACE | OBJECT] [MANUAL_FINALIZATION] sources... )
Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen qt6_add_library()
. Er unterstützt die gleichen Argumente wie dieser Befehl.
Beschreibung
qt_add_library()
ist ein Wrapper um den eingebauten CMake-Befehl add_library()
. Er führt die folgenden Aufgaben aus:
- Erzeugen eines CMake-Targets eines geeigneten Bibliothekstyps.
- Finalisierung des CMake-Targets.
Target-Erstellung
Der Typ der erstellten Bibliothek kann explizit mit einem der Schlüsselwörter STATIC
, SHARED
, MODULE
, INTERFACE
oder OBJECT
angegeben werden, genau wie bei add_library()
. Wenn keines dieser Schlüsselwörter angegeben wird, hängt der erzeugte Bibliothekstyp davon ab, wie Qt gebaut wurde. Wenn Qt statisch gebaut wurde, wird eine statische Bibliothek erstellt. Andernfalls wird eine Shared Library erstellt. Beachten Sie, dass sich dies von der Funktionsweise des CMake-Befehls add_library()
unterscheidet, bei dem die Variable BUILD_SHARED_LIBS
den Typ der erstellten Bibliothek steuert. Seit 6.7 berücksichtigt der Befehl qt_add_library()
BUILD_SHARED_LIBS
bei der Entscheidung über den Bibliothekstyp nur, wenn die Variable explizit gesetzt ist und QTP0003 auf NEW
gesetzt ist.
Jede bereitgestellte sources
wird an den internen Aufruf von add_library()
weitergereicht.
Beendigung
Nachdem ein Ziel erstellt wurde, können weitere Verarbeitungs- oder Finalisierungsschritte erforderlich sein. Die abschließende Verarbeitung wird durch den Befehl qt_finalize_target() durchgeführt.
Die Finalisierung kann entweder als Teil dieses Aufrufs erfolgen oder auf einen Zeitpunkt nach der Rückkehr dieses Befehls verschoben werden (sie sollte aber immer noch im selben Verzeichnisbereich stattfinden). Bei der Verwendung von CMake 3.19 oder höher wird die Finalisierung automatisch auf das Ende des aktuellen Verzeichnisbereichs verschoben. Dies gibt dem Aufrufer die Möglichkeit, Eigenschaften des erstellten Ziels zu ändern, bevor es fertiggestellt wird. Bei der Verwendung von CMake-Versionen vor 3.19 wird die automatische Verschiebung nicht unterstützt. In diesem Fall wird die Finalisierung unmittelbar vor der Rückkehr dieses Befehls durchgeführt.
Unabhängig von der CMake-Version kann das Schlüsselwort MANUAL_FINALIZATION
angegeben werden, um anzuzeigen, dass Sie qt_finalize_target() stattdessen zu einem späteren Zeitpunkt explizit selbst aufrufen werden. Im Allgemeinen sollte MANUAL_FINALIZATION
nicht benötigt werden, es sei denn, das Projekt muss CMake 3.18 oder früher unterstützen.
Siehe auch qt_finalize_target(), qt_add_executable(), und 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.