Sur cette page

qt_add_library

Crée et finalise une bibliothèque.

La commande est définie dans le composant Core du paquetage Qt6, qui peut être chargé comme suit :

find_package(Qt6 REQUIRED COMPONENTS Core)

Cette commande a été introduite dans Qt 6.2.

Synopsis

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

Si les commandes sans version sont désactivées, utilisez qt6_add_library() à la place. Elle prend en charge le même ensemble d'arguments que cette commande.

Description de la commande

qt_add_library() est une enveloppe autour de la commande intégrée add_library() de CMake. Elle effectue les tâches suivantes :

  • Créer une cible CMake d'un type de bibliothèque approprié.
  • Gérer la finalisation de la cible CMake.

Création de la cible

Le type de bibliothèque créé peut être spécifié explicitement avec l'un des mots-clés STATIC, SHARED, MODULE, INTERFACE ou OBJECT, tout comme pour add_library(). Si aucun de ces mots-clés n'est donné, le type de bibliothèque créé dépend de la façon dont Qt a été construit. Si Qt a été construit de manière statique, une bibliothèque statique sera créée. Sinon, une bibliothèque partagée sera créée. Notez que ceci est différent de la façon dont fonctionne la commande add_library() de CMake, où la variable BUILD_SHARED_LIBS contrôle le type de bibliothèque créé. Depuis la version 6.7, la commande qt_add_library() prend en compte BUILD_SHARED_LIBS lorsqu'elle décide du type de bibliothèque uniquement si la variable est définie explicitement et que QTP0003 est définie à NEW.

Tout sources fourni sera transmis à l'appel interne à add_library().

Finalisation

Après la création d'une cible, d'autres étapes de traitement ou de finalisation peuvent être nécessaires. Le traitement de finalisation est implémenté par la commande qt_finalize_target().

La finalisation peut se produire soit dans le cadre de cet appel, soit être différée à un moment donné après le retour de cette commande (mais elle doit toujours se trouver dans le même répertoire). Lorsque l'on utilise CMake 3.19 ou une version ultérieure, la finalisation est automatiquement reportée à la fin de la portée du répertoire courant. Cela donne à l'appelant la possibilité de modifier les propriétés de la cible créée avant qu'elle ne soit finalisée. Lorsque vous utilisez des versions de CMake antérieures à la 3.19, le report automatique n'est pas supporté. Dans ce cas, la finalisation est effectuée immédiatement avant le retour de cette commande.

Indépendamment de la version de CMake, le mot-clé MANUAL_FINALIZATION peut être donné pour indiquer que vous appellerez explicitement qt_finalize_target() vous-même à la place à un moment ultérieur. En général, MANUAL_FINALIZATION ne devrait pas être nécessaire à moins que le projet ne doive supporter CMake 3.18 ou une version antérieure.

Voir aussi qt_finalize_target(), qt_add_executable(), et QTP0003.

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