Skip to main content

O que é uma biblioteca estática?

Uma biblioteca estática é um arquivo de computador que contém um grupo de arquivos relacionados para facilitar a vinculação a programas. O conteúdo desta biblioteca geralmente é um arquivo de código de máquina que não pode ser lido por humanos. Esses arquivos de código de máquina são normalmente gerados a partir da compilação de código ou de um processo semelhante. A maioria dos sistemas operacionais possui extensões padrão para bibliotecas estáticas, portanto são fáceis de identificar, independentemente do tamanho ou do conteúdo.

Os dois tipos diferentes de bibliotecas de computadores são estáticos e dinâmicos. Uma biblioteca estática é mais flexível que uma biblioteca dinâmica porque seu caminho exato é irrelevante para o executável que a usa. As bibliotecas estáticas são vinculadas a um arquivo executável e podem ser excluídas, se necessário, porque seu conteúdo foi incluído no programa final. Uma biblioteca dinâmica não pode ser excluída porque seu conteúdo é carregado à medida que o executável é executado, portanto, seus locais relativos ao executável e no sistema operacional são importantes. A vinculação estática permite que uma biblioteca seja movida ou reutilizada sem se preocupar com caminhos de localização absolutos.

Ao contrário de uma biblioteca dinâmica, uma biblioteca estática geralmente não é executável por si só. No C ++, as bibliotecas estáticas geralmente agem como arquivos de objetos grandes e podem ser vinculadas a executáveis ​​da mesma maneira que os arquivos de objetos e podem ser excluídos sem prejudicar o programa. Embora muitas vezes seja possível renunciar a uma biblioteca estática, eles geralmente são úteis em termos de organização. Para usuários e desenvolvedores, geralmente é mais fácil ter um único arquivo contendo material relacionado do que ter muitos arquivos pequenos. Muitos desenvolvedores criam bibliotecas estáticas especificamente para esse benefício organizacional.

Construir uma biblioteca estática é muito mais simples do que construir uma biblioteca dinâmica. O conteúdo das bibliotecas estáticas não está vinculado porque não é esperado que eles sejam executados por conta própria; portanto, um arquivador simples geralmente é suficiente para criá-los. Criar uma biblioteca estática que não se vincule adequadamente a si mesma não é inerentemente perigoso, desde que a biblioteca esteja vinculada a outros arquivos externos que possam ser necessários. Uma biblioteca pode depender de um grupo externo de arquivos de objeto ou uma biblioteca pode depender de outra. O uso e a organização de bibliotecas estáticas costumam ser uma escolha pessoal por parte do programador, e não um requisito, embora sua mobilidade inerente as faça uma escolha desejável.