Definição de Compilado dinâmicamente, Compilado estaticamente (dynamic compiled, estaticaly compiled)

Por Carlos E. Morimoto. Há .

Estes dois termos são muito comuns entre os programas do Linux e referem-se às duas formas de gerar um pacote instalável.

A primeira forma, e mais simples para quem for instalar é gerar um pacote compilado estaticamente. Desta forma são incluídos no pacote todos os arquivos e bibliotecas de que o programa precisa para funcionar. Ele pode rodar em qualquer distribuição Linux, basta descompactar o pacote e executar. Isto funciona muito bem com programas como o OpenOffice e o Mozilla, que utilizam suas próprias bibliotecas gráficas, necessitando de pouca coisa do sistema de qualquer forma.

O problema dos pacotes compilados estaticamente é que na maioria dos casos os programas ficam muito maiores que o necessário. Por exemplo, se existe uma biblioteca de 5 MB que é utilizada simultâneamente por três programas, de 2 MB cada um. Se os três forem compilados estaticamente, cada um incluirá uma cópia da biblioteca e, ao abrí-los simultâneamente a biblioteca seria carregada três vezes na memória!

Nos programas compilados dinâmicamente todos os arquivos são compilados separadamente, de forma que uma mesma biblioteca nunca é carregada duas vezes (a não ser em casos raros quando uma versão antiga é mantida para assegurar compatibilidade com alguns aplicativos). Isso maximiza o uso do espaço e faz com que o sistema fique muito mais leve e rápido (lembre-se da biblioteca de 5 MB carregada três vezes na memória...) porém faz com que surjam problemas de dependências ( o programa x precisa da biblioteca y para funcionar).

As dependências eram uma grande dor de cabeça no passado mas atualmente os gerenciadores de pacotes são capazes de lidar bem com isso. Ao tentar instalar o programa x ele simplesmente avisará que será preciso instalar também a biblioteca y e se encarregará de instalar os dois sem muitas delongas. Às vezes dá uma certa revolta ter que instalar 10 MB de pacotes por causa de um programinha de 200 K, mas ainda é muito melhor do que se todos esses pacotes fossem incluídos diretamente dentro do programinha, deixando-o com 10,2 MB :).

Veja também
Console portátil apenas para jogar Pinball? Um designer imaginou como seria
Console portátil apenas para jogar Pinball? Um designer imaginou como seria
Games
Dois relógios G-Shock inspirados em League of Legends chegam ao Brasil; saiba o preço
Dois relógios G-Shock inspirados em League of Legends chegam ao Brasil; saiba o preço
Notícias
Preço dos HDs seguirá aumentando, IA tem relação com isso
Preço dos HDs seguirá aumentando, IA tem relação com isso
Hardware
Usuário cria Steam Deck caseiro usando um Ryzen 5 5600G
Usuário cria Steam Deck caseiro usando um Ryzen 5 5600G
Games
O seu está na lista? Celulares Galaxy que receberão a One UI 6.1
O seu está na lista? Celulares Galaxy que receberão a One UI 6.1
Mobile
PlayStation Portal ganha data de lançamento e preços oficiais no Brasil
PlayStation Portal ganha data de lançamento e preços oficiais no Brasil
Games
true