Je travaille dans QT.
- Une bibliothèque statique peut-elle dépendre d'une autre bibliothèque statique? (La bibliothèque statique est créée en liant une autre bibliothèque statique)
- Si oui, est-il possible qu'après avoir lié à lib2, la lib générée (lib1) ne contienne pas tous les codes de lib2?
Dans mon projet Qt, j'utilise une bibliothèque statique, qui dépend de plusieurs bibliothèques. J'ai dû ajouter toutes les bibliothèques (avec tous leurs en-têtes dans mon projet), bien que je n'aie besoin que d'une seule lib (et d'un .h de cette classe) dans mon code.
Veuillez expliquer le scénario.
la source
Mes deux brèves explications: 10 (désolé, terrible blague).
Pour développer légèrement, voici:
1- Une bibliothèque statique peut dépendre d'une autre bibliothèque statique, rien ou même d'une bibliothèque dynamique: dans les deux premiers cas tout le code de la nouvelle bibliothèque statique serait incorporé dans la nouvelle SLL (Static Link Library), cependant, la 3ème option , en fonction de l'environnement, le SLL pourrait avoir l'un des résultats suivants,
Donc en bref oui, vous pouvez lier une bibliothèque statique à une bibliothèque statique
2- si lib1 et lib2 sont tous deux statiques et lib1 a été lié à lib2, alors toutes les fonctionnalités de lib2 seraient disponibles dans lib1 sans avoir besoin d'inclure lib2 car lib2 serait lié statiquement dans lib1 (pensez aux poupées russes, avec lib2 étant le plus petit).
Dans le scénario que vous décrivez, il doit y avoir une fonctionnalité discrète disponible dans chacun des fichiers que vous devez inclure, qui n'est pas liée statiquement, d'où la nécessité de plusieurs fichiers, sinon vous auriez un seul fichier à inclure et tout irait bien.
Prenez ce qui suit: Un fichier .h avec des références à 6 bibliothèques liées statiquement: vous devez inclure 7 fichiers dans votre projet pour obtenir toutes les fonctionnalités
Une SLL qui a été créée à partir dudit fichier .h ne nécessiterait que la nouvelle SLL pour être liée lors de la compilation:
J'espère que cela vous aide et que j'ai compris ce que vous demandiez.
la source