Gosto muito da linguagem
Object Pascal e da sua estrutura para programação orientada a objeto (apesar de não ser um bom programador) e sou fã de carteirinha do
Linux. Quando surgiu o
Kylix, vibrei com a possibilidade de serem criados programas "multiplataforma", mas tive problemas em distribuir programas criados com ele e pelo abandono da Borland ao projeto. Então surgiu o
Free Pascal e o
Lazarus. Fiz uns testes que mostraram o potencial da dupla, e disse: Agora vai! Fiz uma pequena agenda de exemplo, publicada aqui no VivaoLinux.
No entanto ocorreu um detalhe, os executáveis ficavam enormes. Um programa bem simples em Delphi ficava com 1,8MB contra 7,9MB no Lazarus, ou seja, 4 vezes mais. Isso não chega a ser um problema, mas pode assustar quem tem que baixar ou distribuir programas, principalmente em linha discada.
Mas fazendo uma busca na web, achei uma dica sobre o utilitário
strip, presente no pacote
binutils (GNU Binary Development Tools), fiz uma pesquisa na instalação do Lazarus e achei-o na pasta c:\lazarus\fpc\2.0.4\bin\i386-win32. Executei num terminal, passando o nome do executável como parâmetro, e o resultado foi excelente :) Um programa de 6,8MB ficou com 1,9MB, portanto obtendo uma redução de 72%.
strip <programa.exe>
No Linux, além do strip você pode usar o comando
file, para saber se o programa já passou pelo strip.
file <programa>
$ file programa
programa: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
Fiz um programa com o objetivo de aprender a usar o ábaco (Ábaco Livre), que esta hospedado no codigolivre.org.br, mas em Delphi, já estou convertendo-o para Lazarus e breve será disponibilizada uma nova versão, juntamente com binários para Linux e Windows, e com o tamanho do executável reduzido! :)
Dicas sobre o strip:
Viva o Linux:
Dicas-L:
Estou colocando aqui também uma lista de programas desenvolvidos com o Lazarus:
O Lazarus pode ser encontrado em:
Espero ter ajudado e que o tamanho do executável não seja mais uma barreira na adoção do Lazarus na migração ou criação de programas para Linux.