Mis dos bits rápidos sobre esto: 10 (lo siento, una broma terrible).
Para ampliar un poco, aquí va:
1- Una biblioteca estática puede depender de otra biblioteca estática, nada o incluso una biblioteca dinámica: en las dos primeras instancias, todo el código para la nueva biblioteca estática se incorporaría en el nuevo SLL (Static Link Library), sin embargo, la tercera opción , dependiendo del medio ambiente podría llevar a que el SLL tenga uno de los siguientes resultados,
- contendría versiones estáticas del código requerido por el recopilado de la DLL (Biblioteca de enlaces dinámicos)
- o, mucho más horrible, tendría una biblioteca estática que, cuando se incluye en un proyecto, provocaría el requisito de envío con una DLL, rompiendo todo el punto de enlace estático.
En resumen, sí, puede vincular una biblioteca estática a una biblioteca estática
2- si lib1 y lib2 son estáticos, y lib1 se ha vinculado con lib2, entonces toda la funcionalidad de lib2 estaría disponible dentro de lib1 sin la necesidad de incluir lib2 ya que lib2 estaría estáticamente vinculado dentro de lib1 (piense en las muñecas rusas, con lib2 siendo el más pequeño).
En el escenario que describe, debe haber una funcionalidad discreta disponible en cada uno de los archivos que tiene que incluir, que no está estáticamente vinculada, de ahí la necesidad de múltiples archivos, de lo contrario tendría que incluir un solo archivo y estaría bien.
Tome lo siguiente: Un archivo .h con referencias a 6 bibliotecas enlazadas estáticamente: necesitaría incluir 7 archivos en su proyecto para obtener la funcionalidad completa
Un SLL que se creó a partir de dicho archivo .h requeriría que solo se incluyera el nuevo SLL para vincular en la compilación:
Espero que esto ayude y que haya entendido lo que estaba preguntando.