Sur cette page

qt_add_library

Crée et finalise une bibliothèque.

Cette commande est définie dans le composant « Core » du paquet « 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 plutôt ` qt6_add_library() `. Elle prend en charge le même ensemble d'arguments que cette commande.

Description

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 du 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 à l’aide de l’un des mots-clés suivants : STATIC, SHARED, MODULE, INTERFACE ou OBJECT, tout comme on le ferait pour add_library(). Si aucun de ces mots-clés n’est fourni, le type de bibliothèque créé dépend de la manière dont Qt a été compilé. Si Qt a été compilé de manière statique, une bibliothèque statique sera créée. Dans le cas contraire, une bibliothèque partagée sera créée. Notez que cela diffère du fonctionnement de la commande ` add_library() ` de CMake, où la variable ` BUILD_SHARED_LIBS ` contrôle le type de bibliothèque créée. Depuis la version 6.7, la commande ` qt_add_library() ` ne prend en compte ` BUILD_SHARED_LIBS ` pour déterminer le type de bibliothèque que si la variable est explicitement définie et que `QTP0003` est défini sur ` NEW`.

Toute valeur fournie à ` sources ` sera transmise à l'appel interne à ` add_library()`.

Finalisation

Une fois la cible créée, des étapes de traitement supplémentaires ou de finalisation peuvent s’avérer nécessaires. Le traitement de finalisation est mis en œuvre par la commande ` qt_finalize_target() `.

La finalisation peut avoir lieu soit dans le cadre de cet appel, soit être reportée à un moment ultérieur après le retour de cette commande (mais elle doit tout de même se situer dans la même portée de répertoire). Avec CMake 3.19 ou une version ultérieure, la finalisation est automatiquement reportée à la fin de la portée de répertoire actuelle. Cela permet à l'appelant de modifier les propriétés de la cible créée avant sa finalisation. Avec les versions de CMake antérieures à la version 3.19, le report automatique n'est pas pris en charge. Dans ce cas, la finalisation est effectuée immédiatement avant que cette commande ne renvoie une valeur.

Quelle que soit la version de CMake, le mot-clé « MANUAL_FINALIZATION » peut être spécifié pour indiquer que vous appellerez explicitement vous-même la fonction `qt_finalize_target() ` ultérieurement. En général, ` MANUAL_FINALIZATION ` ne devrait pas être nécessaire, sauf si le projet doit prendre en charge CMake 3.18 ou une version antérieure.

Voir également 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.