strip: diminuindo o tamanho dos programas compilados

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

[ Hits: 12.209 ]

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

Agreagador de notícias do GoblinX Linux

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

Leitura recomendada

Samba + GNOME + Nautilus - Debian 6 Squeeze

Estatística Linux / Registrando um usuario Linux

Glider: Símbolo da ética Hacker!

FLISOL 2007 - Festival de Instalação

Slackware 14 - Instalação pelo pendrive

  

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