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,
- il contiendrait des versions statiques du code dont il a besoin recueillies à partir de la DLL (Dynamic Link Library)
- ou, bien plus horriblement, vous auriez une bibliothèque statique qui, lorsqu'elle est incluse dans un projet, entraînerait l'exigence de livraison avec une DLL, rompant tout le point de la liaison statique.
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.