Auf dieser Seite

qt_set_finalizer_mode

Passt Aspekte der Finalisierung eines Ziels an.

Der Befehl ist in der Komponente „ Core “ des Pakets „ Qt6 “ definiert, das wie folgt geladen werden kann:

find_package(Qt6 REQUIRED COMPONENTS Core)

Dieser Befehl wurde in Qt 6.2 eingeführt.

Hinweis: Dieser Befehl befindet sich in der Technologievorschau und kann sich in zukünftigen Versionen ändern.

Übersicht

qt_set_finalizer_mode(target
    ENABLE | DISABLE
    MODES modes...
)

Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen „ qt6_set_finalizer_mode() “. Dieser Befehl unterstützt dieselben Argumente wie der vorliegende Befehl.

Beschreibung

Dieser Befehl dient dazu, bestimmte Aspekte der Finalisierung eines bestimmten „ target “ anzupassen. Er wirkt sich nur aus, wenn er aufgerufen wird, bevor „ target “ finalisiert wird, was in einem der folgenden Szenarien geschieht:

  • Das Projekt ruft explizit `qt_finalize_target() ` für das ` target` auf. Dies bedeutet in der Regel, dass das Schlüsselwort ` MANUAL_FINALIZATION ` an `qt_add_executable() ` übergeben wurde, als das ` target ` definiert wurde.
  • Es wird CMake 3.17 oder früher verwendet; in diesem Fall erfolgt die Finalisierung immer sofort als Teil des Aufrufs von ` qt_add_executable()`.
  • Wird CMake 3.18 oder höher verwendet, wurde das Schlüsselwort „ MANUAL_FINALIZATION “ bei der Definition des „ target “ nicht an „qt_add_executable()“ übergeben, und die verzögerte Finalisierung wurde am Ende des Verzeichnisbereichs des „ target “ abgeschlossen.

qt_set_finalizer_mode() wird verwendet, um eine Liste von Modi zu aktivieren oder zu deaktivieren, wobei ein Modus einem bestimmten Aspekt der Finalisierung entspricht. Die derzeit unterstützten Finalisierungsmodi sind:

ModusStandardVerhalten bei der Finalisierung
static_pluginsAktivWenn Qt statisch kompiliert wird, erstellt es Initialisierungs-Objektbibliotheken für seine statischen Plugins. Wenn „ target “ eine ausführbare Datei ist und dieser Finalisierungsmodus aktiviert ist, werden alle vom „ target “ benötigten Plugin-Initialisierungs-Objektbibliotheken direkt damit verknüpft. Dies verhindert Zirkelschleifen zwischen den von Qt bereitgestellten statischen Bibliotheken und kann die Verknüpfungszeit verkürzen. Ist dieser Finalisierungsmodus deaktiviert, wird jeder Plugin-Initialisierer stattdessen über die Verwendungsanforderungen der zugehörigen Qt-Bibliothek weitergeleitet, was zu Zyklen führen kann. Wird Qt nicht statisch kompiliert, ist dieser Finalisierungsmodus irrelevant und wird nicht verwendet.

Beispiel

Das folgende Beispiel setzt voraus, dass Sie CMake 3.19 oder höher verwenden (erforderlich für die verzögerte Finalisierung):

qt_add_executable(my_app main.cpp)
qt_set_finalizer_mode(my_app ENABLE MODES static_plugins)

Das gleiche Beispiel mit manueller Finalisierung könnte wie folgt aussehen:

qt_add_executable(my_app MANUAL_FINALIZATION main.cpp)
qt_set_finalizer_mode(my_app ENABLE MODES static_plugins)
qt_finalize_target(my_app)

Siehe auch 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.