O que é um arquivo de objeto?
Um arquivo de objeto é um arquivo de computador gerado por um programa chamado compilador e contém dados e instruções. Os compiladores traduzem o código-fonte da linguagem de programação em uma forma intermediária e legível por máquina conhecida como código de objeto. Programas menores podem ser compilados em um único arquivo de objeto, enquanto programas maiores são normalmente compilados em vários arquivos de função relacionada. Esses arquivos de objeto individuais são unidos por um vinculador e informações específicas do sistema operacional são adicionadas para formar um programa executável.
Na prática comum, um arquivo de objeto é indicado por uma extensão de arquivo ".obj". Existem vários formatos diferentes para esses arquivos, no entanto. Os mais comuns são o formato do módulo de objeto Relocatable Intel® (OMF) e o formato de arquivo de objeto comum (CoFF) do Windows & Reg e Unix® System V. Em muitos sistemas INIX®, o formato executável e vinculado (ELF) chegou a substituir o CoFF.
Independentemente do formato, um arquivo de objeto normalmente contém três tipos de informaçõesIsso permite que ele interaja com outros módulos do programa. Procedimentos e dados abertos a referência externa recebem nomes pelos quais eles podem ser chamados de outros módulos. Da mesma forma, as referências a informações fora do módulo são anotadas, mas não atribuídas um nome. Quando os arquivos estiverem vinculados, as referências não identificadas serão atribuídas o nome dado a eles no módulo onde foram originalmente definidos. Os nomes locais são usados para instruções e dados referidos apenas em um módulo.
Nem todo o código vinculado é armazenado como arquivos de objeto. As bibliotecas são coleções de rotinas pré -compiladas que são armazenadas como código de objeto. Eles são produzidos da mesma maneira que os arquivos de objeto e são úteis para armazenar procedimentos frequentemente chamados. Quando um vinculador não encontra uma referência em outros arquivos de objeto, ele o pesquisará automaticamente em um arquivo de biblioteca. A maioria das implementações de uma linguagem de programaçãoVenha com uma biblioteca padrão de funções.
Por meio da ligação dinâmica, um arquivo de objeto pode ser usado simultaneamente por vários programas de execução. Em vez de vincular o código do objeto a um programa quando vinculado, ele é recuperado quando o programa é carregado ou em tempo de execução quando um procedimento é referenciado. No ambiente Windows®, eles são conhecidos como bibliotecas de links dinâmicos e são denotados por uma extensão ".dll". Sistemas semelhantes ao Unix® costumam ter esse tipo de arquivo um objeto compartilhado dinâmico (DSO). Esse tipo de arquivo de objeto também pode ser implementado para uso em um programa específico e seria parte da instalação desse programa.