strip: diminuindo o tamanho dos programas compilados

Publicado por Flavio Pereira de Oliveira em 20/01/2005

[ Hits: 12.301 ]

Blog: http://www.goblinx.com.br

 


strip: diminuindo o tamanho dos programas compilados



Muitos usuários necessitam compilar programas a partir do código fonte e a imensa maioria usa os seguintes comandos em ordem:
  • configure;
  • make;
  • e make install.

Estes comandos criam um programa com a maioria de suas funcionalidades, algumas verdadeiramente desnecessárias, como a inclusão de símbolos nos objetos.

Para diminuir o tamanho dos programas compilados, existe um executável presente no pacote binutils (GNU Binary Development Tools) de grande utilidade, o strip.

Strip é um comando usado para a remoção dos símbolos em objetos, o que reduz o tamanho de executáveis e bibliotecas. A maioria dos símbolos é usada para o debug do programa, ou seja, importante apenas para desenvolvedores.

Depois de usar o comando make, procure pelos executáveis e bibliotecas e use o comando strip. Existem diversos parâmetros para o comando, mas para remover todos os símbolos basta usar:

$ strip nomedoexecutável

Em teste, após compilar o gnumeric, o executável ficou com 33Mb de tamanho, após a execução do strip caiu para 4Mb.

Use o comando strip em executáveis e bibliotecas não estripadas ainda para diminuir o tamanho do seu sistema, você pode estripar executáveis e bibliotecas já instalados.

A maioria dos pacotes das distribuições já vêm com os executáveis e bibliotecas estripados.

Outras dicas deste autor

Ripando CDs de áudio com o Konqueror

Salvando as configurações pessoais no GoblinX

Show de slides no desktop: configurando e rotacionando papéis de parede no KDE

Criando uma galeria de imagens no Konqueror

Agreagador de notícias do GoblinX Linux

Leitura recomendada

Edição de vídeo no Linux

Pacotão de fontes para Linux

Executar comandos ou scripts no Linux via Windows, sem intervenção do usuário

Mapeando teclas de modo visual no VIM

Usando dois ambientes gráficos no Ubuntu: Gnome e KDE

  

Comentários
[1] Comentário enviado por fabio em 20/01/2005 - 03:02h

Excelente dica, meus parabéns!

[2] Comentário enviado por Grobsch em 20/01/2005 - 08:28h

Valeu Fábio!! Espero que ajude o pessoal...

[3] Comentário enviado por neriberto em 20/01/2005 - 08:31h

Dica bastante interessante, não testei ainda. mas prometo que vou, ótima contribuição

[4] Comentário enviado por Grobsch em 20/01/2005 - 08:44h

Para os executáveis é tira e queda... diminue radicalmente o tamanho..
Para as bibliotecas, algumas poucas podem necessitar de static link, mas sempre funciona comigo...
Apenas não é bom utilizá-lo com os módulos de kernel... É possível remover apenas alguns símbolos já que o comando insmod para certos módulos precisa dos símbolos.

[5] Comentário enviado por jose_maria em 20/01/2005 - 21:20h

Bem legal isso. Eu não conhecia.
Reduziu em 20% uns programas que eu fiz.
Esses binários vão continuar a funcionar se eu levar eles para outras máquinas?

[6] Comentário enviado por Grobsch em 21/01/2005 - 08:10h

Acredito que sim porque os pacotes do Slackware usam executáveis estripados e fiz também assim com o GoblinX... e ambos funcionam em inúmeros computadores...
Alguns executáveis maiores terão ainda mais redução de símbolos...

[7] Comentário enviado por slask em 21/01/2005 - 13:50h

Muito Bom msm. Testei em alguns programas aqui e o tamanho reduziu de 20% a 50%!! Mto Bom!

[8] Comentário enviado por morvan em 24/01/2005 - 17:54h

Parabéns pela dica. A título de informe, há bastante tempo atrás, quando era comum, para mim, compilar programas, tanto em ASM como em outras linguagens, no MSDOS, havia o Exehdr.exe. Ele fazia o mesmo que o utilitário que vós citais, porém, com uma abordagem diferente: ele mexia no executável, manipulando o total de memória mínimo de execução. Não mexia na extensão (em Bytes) do executável. Este conforme visto, retira as informações que interessam ao depurador. Perfeito.
Obrigado e um abraço.

[9] Comentário enviado por beetle_juice em 15/05/2005 - 12:39h

Perdido no v.o.l como sempre... me deparo com essa dica muito show do meu amigo Grobsch! Não conhecia este tipo de comando, vou experimentar com certeza pois o Slack véio aqui em casa, jah tah passando dos 60% de uso no HD rs...
PS: Tá saindo uns 3 artigos novos aí no v.o.l fica atento!!!
t+
[]'s
beetle_juice.

[10] Comentário enviado por ulbj05 em 10/01/2006 - 13:56h

Muito boa a sua dica!!!

Não testei ainda mais vou testar!!! Este pacote Binutils já vem instalado por padrão na maioria das distribuições? Eu utilizo o Kurumin...vou procurar para ver se já está instalado e se não, se já está disponível para instalação a partir do apt-get. De qualquer maneira vou testar e ver o resultado.

Muito boa a dica...parabéns!!!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts