setup portable online descargar compiler code blocks c++ optimization mingw executable

c++ - portable - codeblocks-16.01 mingw-setup.exe download



¿Cómo reducir el tamaño del ejecutable producido por el compilador MinGW g++? (4)

Tengo un programa trivial de C ++ "Hello world" que se compila a un ejecutable de 500 kB mediante el compilador MinGW g ++ en Win XP. Algunos dicen que es causado por la biblioteca iostream y el enlace estático de libstdc ++. Dll .

El uso de la opción del enlazador -s ayudó un poco (reduciendo el tamaño en un 50%), pero solo quedaría satisfecho con <10kB ejecutable. ¿Hay alguna manera de lograr esto usando el compilador MinGW? La portabilidad no es una gran preocupación para mí.

¿Es posible copiar libstdc ++. Dll con el ejecutable utilizando un enlace dinámico? Si es así, ¿cómo lograr esto?

Resuelto: estaba usando MinGW 3.4. Ahora actualicé a la última versión de MinGW 4.6 y el tamaño se redujo en un 90% a 50 kB, con la opción -s incluso a 9 kB, que es totalmente suficiente. De todos modos, gracias a todos por la ayuda. Aquí tienes mis resultados.

C ++ Hello World programa utilizando iostream

MinGW | no options | -s option ------------------------------ 3.4 | 500kB | 286 kB 4.6 | 50kB | 9 kB


Banderas a utilizar:

  • -s como has estado haciendo para quitar los símbolos.
  • -lstdc++_s para especificar la vinculación dinámica con libstdc++.dll
  • -Os de optimizar el binario por tamaño.

Por defecto, los enlaces estáticos mingw a libstdc++.a en Windows.

Tenga en cuenta que el lstdc++_s solo está en MinGW con GCC> 4.4, creo.


Deberías estar usando -O para la optimización. Agregue "-O {nivel}" a los argumentos de su compilador y se optimizará para la velocidad o el tamaño. Compruebe los documentos para su compilador.

También podría tener símbolos de depuración habilitados. Pelarlos también lo hará más pequeño.



Usar la bandera -Os podría ayudar. Eso optimiza para el tamaño.