O que é um objeto compartilhado?
Um objeto compartilhado é uma biblioteca compilada, muitas vezes com extensão .so ou .dll, que é carregada pelo linker dinâmico quando um programa roda, em vez de ser embutida no executável. Muitos processos podem mapear o mesmo objeto compartilhado, de modo que uma cópia de seu código serve a todos eles. Ele geralmente precisa ser construído como código independente de posição.
Por que isso importa
Objetos compartilhados reduzem o tamanho dos executáveis e permitem que a atualização de uma única biblioteca beneficie todo programa que a usa. O custo é o gerenciamento de dependências, já que a versão correta precisa estar presente em tempo de execução.
Guias relacionados
What Is a Static Library?A static library is an archive of object files whose needed code is copied directly into an executable at lin…
What Is a Dynamic Linker?A dynamic linker loads the shared libraries a program depends on at startup and binds its references to the f…
What Is Position-Independent Code (PIC)?Position-independent code runs correctly regardless of the address it is loaded at, by addressing data and ca…