Meus rápidos dois bits sobre isso: 10 (desculpe piada terrível).
Para expandir um pouco, aqui vai:
1 - Uma biblioteca estática pode depender de outra biblioteca estática, nada ou mesmo uma biblioteca dinâmica: nas duas primeiras instâncias, todo o código da nova biblioteca estática seria incorporado na nova SLL (Static Link Library), no entanto, a terceira opção , dependendo do ambiente, o SLL pode ter um dos seguintes resultados,
- conteria versões estáticas do código exigido por ele coletado da DLL (Dynamic Link Library)
- ou, muito mais horrivelmente, você teria uma biblioteca estática que, quando incluída em um projeto, causaria o requisito de remessa com uma DLL, interrompendo todo o ponto de vinculação estática.
Então, resumindo, você pode vincular uma biblioteca estática a uma biblioteca estática
2- se a lib1 e a lib2 forem estáticas e a lib1 tiver sido vinculada à lib2, toda a funcionalidade da lib2 estará disponível na lib1 sem a necessidade de incluir a lib2, pois a lib2 estaria estaticamente vinculada à lib1 (pense em bonecas russas, com lib2 sendo o menor).
No cenário que você descreve, deve haver uma funcionalidade discreta disponível em cada um dos arquivos que você precisa incluir, que não está vinculado estaticamente, daí a necessidade de vários arquivos; caso contrário, você teria um único arquivo a incluir e ficaria bem.
Faça o seguinte: Um arquivo .h com referências a 6 bibliotecas vinculadas estaticamente: você precisará incluir 7 arquivos no seu projeto para obter a funcionalidade completa
Um SLL que foi criado a partir do referido arquivo .h exigiria que apenas o novo SLL fosse incluído para vinculação na compilação:
Espero que isso ajude e que eu tenha entendido o que você estava perguntando.