003
18.04.2011, 19:48 Uhr
0xdeadbeef
Gott (Operator)
|
Das wird was Dev-Cpp-spezifisches sein; wahrscheinlich linkt der irgendwas großes statisch rein. Bei mir (Debian, gcc 4.5.2) bekomme ich für ein einfaches "Hello, world."-Programm eine Executable von 8441 Byte mit -O2. Mit -Os und strip komme ich runter auf 5264 Byte.
Du solltest dir wahrscheinlich eine IDE suchen, die noch weiterentwickelt wird; diese hätte dann auch keinen sechs Jahre alten Compiler. Womöglich haben neuere Versionen des MinGW-gccs ein besseres Verhalten drauf.
Nachtrag: Nein, haben sie nicht. Der MinGW-Crosscompiler spuckt mir eine knapp ein Megabyte große .exe aus (gestrippt gut 500K). Da wird irgendeine große, monolithische Bibliothek statisch verlinkt. Vermutlich will man um die Windows-DLL-Hölle herumkommen.
Nachtrag 2: Jupp, liegt alles nur als statische Bibliothek da. Betroffen sind libstdc++, libmingw32, libgcc, libmoldname, libmingwex, msvcrt, user32, kernel32, advapi32 und shell32. Der Linker wählt zwar nur die Bibliotheksteile aus, die er braucht, um Abhängigkeiten aufzulösen, aber die iostreams-Bibliothek zieht die C-I/O-Bibliothek, die wiederum den halben restlichen Kram zieht. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 18.04.2011 um 19:57 Uhr von 0xdeadbeef editiert. |