Meine kurzen zwei Punkte dazu: 10 (sorry schrecklicher Witz).
Um etwas zu erweitern, hier geht's:
1- Eine statische Bibliothek kann von einer anderen statischen Bibliothek abhängen, von nichts oder sogar von einer dynamischen Bibliothek: In den ersten beiden Fällen würde der gesamte Code für die neue statische Bibliothek in die neue SLL (Static Link Library) aufgenommen, jedoch die dritte Option , abhängig von der Umgebung, könnte dies dazu führen, dass die SLL eines der folgenden Ergebnisse erzielt:
- Es würde statische Versionen des von ihm benötigten Codes enthalten, die aus der DLL (Dynamic Link Library) stammen.
- oder, viel schrecklicher, Sie hätten eine statische Bibliothek, die, wenn sie in ein Projekt aufgenommen wird, den Versand mit einer DLL erforderlich macht und den gesamten Punkt der statischen Verknüpfung unterbricht.
Kurz gesagt, Sie können eine statische Bibliothek mit einer statischen Bibliothek verknüpfen
2- Wenn lib1 und lib2 beide statisch sind und lib1 mit lib2 verknüpft wurde, wäre die gesamte Funktionalität von lib2 in lib1 verfügbar, ohne dass lib2 eingeschlossen werden müsste, da lib2 statisch in lib1 verknüpft wäre (denken Sie an russische Puppen mit lib2 kleiner sein).
In dem von Ihnen beschriebenen Szenario muss in jeder der Dateien, die Sie einschließen müssen, eine diskrete Funktionalität verfügbar sein, die nicht statisch verknüpft ist. Daher sind mehrere Dateien erforderlich. Andernfalls müssten Sie eine einzelne Datei einschließen, und es wäre in Ordnung.
Nehmen Sie Folgendes: Eine .h-Datei mit Verweisen auf 6 statisch verknüpfte Bibliotheken: Sie müssten 7 Dateien in Ihr Projekt aufnehmen, um die volle Funktionalität zu erhalten
Für eine SLL, die aus dieser .h-Datei erstellt wurde, muss nur die neue SLL zum Verknüpfen bei der Kompilierung enthalten sein:
Hoffe das hilft und dass ich verstanden habe was du gefragt hast.