Eu estou trabalhando no QT.
- Uma biblioteca estática pode depender de outra biblioteca estática? (A Static Lib é criada vinculando outra estática)
- Se sim, é possível que, depois de vincular à lib2, a lib gerada (lib1) não contenha todos os códigos da lib2?
No meu projeto Qt, estou usando uma biblioteca estática, que depende de várias bibliotecas. Eu tive que adicionar todas as bibliotecas (com todos os cabeçalhos no meu projeto), embora eu precise apenas de uma lib (e uma .h dessa classe) no meu código.
Por favor, explique o cenário.
fonte
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,
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.
fonte