Pergunta

Eu sei que .OBJ é o resultado da compilação de uma unidade de compilação e .LIB é uma biblioteca estática que pode ser criada a partir de vários .OBJ, mas essa diferença parece estar apenas no número de unidades de compilação.Existe alguma outra diferença?É o mesmo formato de arquivo ou diferente?

Cheguei a esta questão ao me perguntar se a mesma variável estática definida em dois (ou mais) .LIBs é mesclada ou não durante a vinculação ao executável final.Para .OBJs as variáveis ​​são mescladas.Mas é o mesmo em .LIBs?

Foi útil?

Solução

Um arquivo .LIB é uma coleção de arquivos .OBJ concatenados com um índice.Também não deve haver diferença na forma como o vinculador trata.

Outras dicas

Parece que o arquivo .lib é como uma coleção de arquivos .obj.Algumas pessoas também consideram o processo que alterna vários arquivos .obj para arquivos .lib, como Arquivo.Nesse caso, o arquivo .lib é uma caixa do arquivo .obj, que pode ser tratada igualmente pelo vinculador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top