PDA

Ver la Versión Completa : Cómo reducir el tamaño de un archivo lazarus


anubis
09-09-2012, 23:32:08
Hola,

No si ya lo hayais visto o si ya lo sabeis pero para los que no lo sepan, lo comento.

Por ejemplo, en mi caso, tengo un archivo ejecutable de 80 megas, lo he dejado en 2.5 megas.

Hay un par de utilidades en lazarus, concretamente en la ruta C:\lazarus\fpc\2.6.1\bin\i386-win32, que son:

strip.exe ---> sirve para "aligerar" de simbolos del depurador y lo deja, en mi caso, en 7.5megas.
upx.exe ---> comprime el exe, dejandolo aún mas delgado, en mi caso, 2.5 megas.

Estos dos comandos se usan desde línea de comandos:

strip.exe programa.exe
upx.exe programa.exe

El upx no lo recomiendan salvo que tengas buenas razones para usarlo, por alguna que otra pérdida.

de todas formas os dejo donde he visto esta información

http://wiki.freepascal.org/Lazarus_Faq/es

Casimiro Notevi
10-09-2012, 00:10:05
Gracias por la información :)

mightydragonlor
10-09-2012, 01:34:37
Otra forma fácil es decirle al depurador que genere las líneas de información en un archivo aparte del ejecutable, un programa de 20MB te queda en 4MB aprox, luego el strip y queda en unos 600k y si le sumas el upx como 100k xD

anubis
10-09-2012, 01:39:56
ah y eso como es y donde lo guarda.?

daragor
10-09-2012, 01:42:48
Muy buena info ya me estaba preocupando este tema del peso.. una pregunta como arranco la linea de comandos?

anubis
10-09-2012, 02:05:52
hola,

te vas a inicio, y escribes en ejecutar cmd.
ahi te sale la linea de comandos.

lo unico seria que metieras la ruta en variables de entorno para que pudieras ejecutar strip en cualquier directorio.

Las varialbes de entorno, se cambian en windows 7 --- panel de control ---- sistema ---- variables de entorno ----- ahi en el cuadro de abajo buscas path lo seleccionas y en toda la linea que sale, le agregas un ; y luego toda la ruta donde esta strip.

Casimiro Notevi
10-09-2012, 02:13:28
una pregunta como arranco la linea de comandos?
Supongo que es una pregunta de broma ;)

mightydragonlor
10-09-2012, 02:23:10
ah y eso como es y donde lo guarda.?

Proyecto=>Opciones de proyecto=>Enlazado=>Usar archivo externo de símbolos de depuración para gdb(-Xg)
Esto hace que junto a tu ejecutable quede un archivo con el mismo nombre del ejecutable con extensión .GDB

daragor
10-09-2012, 02:29:31
Supongo que es una pregunta de broma ;)

No casimiro, lamento quedar como tonto pero pense q hablabamos de lazarus no de windows... soy novato en este entorno.

mightydragonlor
10-09-2012, 04:31:57
No casimiro, lamento quedar como tonto pero pense q hablabamos de lazarus no de windows... soy novato en este entorno.

Como dicen por ahí, es mejor quedar como tonto un momento por preguntar, que no hacerlo y quedar tonto por toda la vida.

Casimiro Notevi
10-09-2012, 10:00:51
No casimiro, lamento quedar como tonto pero pense q hablabamos de lazarus no de windows... soy novato en este entorno.
Como dicen por ahí, es mejor quedar como tonto un momento por preguntar, que no hacerlo y quedar tonto por toda la vida.

No, hombre, no es quedar como tonto, lo tonto sería no preguntar si no se sabe.
Es que no se puede saber todo.

Fíjate que yo estaba pensando en la línea de comandos de linux, que es lo que uso:
En ubuntu: Aplicaciones->Accesorios->Terminal
En windows: Inicio->Ejecutar, tecleas cmd y aceptas.

daragor
10-09-2012, 14:35:56
Ok compañeros.. ya use esta tecnica.. para los que x ahi se pierden un poco como yo les digo que se puede copiar el programa strip.exe y pegarlo en la carpeta de nuestro proyecto donde esta el ejecutable de ahi se ejecuta tal cual lo dice el compañero anubis.

Espero q siga creciendo este buen subforo de lazarus. Saludos!!

Critter
11-09-2012, 10:51:14
Otra opción más práctica es utilizar las macros en las Opciones del proyecto, concretamente en

"Opciones del Compilador" -> "Opciones" -> "Ejecutar despues de" -> "Construir"

y en "Comando" ponemos lo siguiente:

"$(LazarusDir)\fpc\$(FPCVer)\bin\i386-win32\strip.exe --strip-all $(TargetFile)", las macros sustituyen las rutas a Strip.exe. y así esta manera no se recurre a la linea de comandos.

Si además quereis comprimir con el UPX, entonces en vez de el comando de arriba, se puede llamar a un archivo BAT.

ElMug
28-09-2012, 04:46:13
Antes usaba stripper pero ya tengo tiempo usando este:

http://www.wibblytim.co.uk/compress.html

Es grafico y muy facil de usar. En pruebase, los .exe fueron menores que con stripit.

Casimiro Notevi
28-09-2012, 11:42:33
En la web de Lazarus, lo explica: aquí (http://wiki.lazarus.freepascal.org/Lazarus_Faq#Why_are_the_generated_binaries_so_big.3F).