Vamos a hacer unas pruebas, el codigo de ejemplo que viene con el Dev-C++ haciendo un proyecto en C++ es el siguiente:
Código:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
system("PAUSE");
return EXIT_SUCCESS;
}
Con gcc (o afines) obtenemos un ejecutable de 464KB, con VC++ el ejecutable es de 27KB seguramente es culpa de Windows ...
Pero todavia no estamos en igualdad de condiciones ya que el gcc enlaza estaticamente contra la CRT dinamica (MSVCRT.dll) y VC++ no (usa por defecto la CRT estatica, dentro del ejecutable). Ahora vemos que si enlazamos estaticamente la CRT dinamica obtenemos un hermoso ejecutable de 4KB. Debe ser culpa de Windows ...
Muy probablemente haya una forma de evitar este problema pero no me interesa en lo mas minimo, mi intencion es simplemente demostrar la falta total de veracidad en las afirmaciones anteriores sobre Windows. Creo que quedo claro que la plataforma no limita de ninguna manera.
PD. Trate de poner el codigo generado por los dos compiladores para el archivo objeto (no el ejecutable sino el del
modulo de .cpp
nuestro) pero el del gcc era tan largo que no me dejaba publicar el mensaje, si tienen el dumpbin denle un vistazo y entre eso y las secciones creadas se daran una idea de la razon por la cual tiene ese tamaño.