Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: jorgediz en 26 de Febrero de 2004, 05:03:51 PM

Título: Ejecutable Demasiado Grande
Publicado por: jorgediz en 26 de Febrero de 2004, 05:03:51 PM
 Hola, estoy empezando a programar con C++ y hay algo que me preocupa.

He hecho un programita sencillo, de un archivo, no más de 60 líneas. Cuando lo compilo con DevC++ me da un ejecutable de 463 KB, y con VC++ de 500.

A mí esto no me parece normal para una aplicación de consola que convierte números árabes en romanos. Sólo estoy usando las librerías y , ésta para el 'cout' y 'cin'.

Supongo que podría pasar de usar strings a arrays de char y ahorrarme alguna librería, pero es un coñazo. ¿Hay otra alternativa para reducir el tamaño?

Saludos y gracias.
Título: Ejecutable Demasiado Grande
Publicado por: AgeR en 26 de Febrero de 2004, 05:36:11 PM
 #define WIN32_LEAN_AND_MEAN // Esto debería servir tanto para DevC como para VC
#define VC_LEANMEAN // Esto para VC

Con estos defines se logra eliminar bastante paja que se suele incluir por defecto.

Luego si quieres menos tamaño también hay librerías para reducir el tamaño de los ejecutables (upx me suena).

Por cierto, ten en cuenta que si estás compilando en modo debug, el ejecutable será mucho mas grande que si lo hicieras en modo release.  (En VC++ : Build -> Set active configuration...)

Espero que te sirva, saludos!
Título: Ejecutable Demasiado Grande
Publicado por: Thenend en 26 de Febrero de 2004, 06:45:34 PM
 Como curiosidad estos dos artículos en los que se crea un aplicación de C++ con su ventana y su Direct3D inicializado y listo para usar, que compila en un ejecutable de menos de 1K  

http://www.ukscene.org/modules.php?name=Se...article&artid=8

http://www.ukscene.org/modules.php?name=Se...article&artid=9

(uoh)
Título: Ejecutable Demasiado Grande
Publicado por: samsaga2 en 27 de Febrero de 2004, 10:17:17 AM
 Dile al compilador que optimice por tamaño en lugar de optimizar por velocidad (¿-Os? no macuerdo). Como te dicen antes compila sin informacion de debug, si tienes el cygwin instalado hazle un strip al ejecutable (para quitar toda la informacion inservible) y un upx (para comprimir el ejecutable).

Ademas ten en cuenta que por el solo hecho de usar C++ y las STL se te añadira la ostia de mierda (lease librerias).

Si no te preocupa el tamaño del ejecutable no te preocupes si en cambio es algo importante pasate al C en lugar del C++.
Título: Ejecutable Demasiado Grande
Publicado por: ethernet en 27 de Febrero de 2004, 12:29:32 PM
 fr08 esta en c++ y ahi la tienes www.theproduct.de.
Prueba a ponder multithread DLL y veras como baja el tamaño del exe.
De todas formas con quitar la info de debug va que bufa.

saludos
Título: Ejecutable Demasiado Grande
Publicado por: Astharoth en 27 de Febrero de 2004, 05:20:08 PM
 

Un buen enlace con codigo util.

Libctiny de Matt pietrek :)

Como diria un compañero " ehh ehh ese dios" :D

Un Saludo.
Título: Ejecutable Demasiado Grande
Publicado por: jorgediz en 27 de Febrero de 2004, 10:33:38 PM
 Caray, ¡cuántas respuestas! No esperaba recibir tanta ayuda. Desde luego hoy me acostaré sabiendo cienmil cosas más...

Muchas gracias a todos los que habéis aportado algo al hilo  :)  :) .
Título: Ejecutable Demasiado Grande
Publicado por: MA]Mestre en 27 de Febrero de 2004, 11:00:42 PM
 Me juego un gallifante que tu problema es que compilas en modo DEBUG xD Sure !!!
por cierto, sabias que si distribuyes tu exe o dll en modo debug llevan el codigo dentro ?  (twist)  hay cientos en modo debug por la red xDDDD

Un saludo.