• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Dateigrösse von C++ Programmen

S

struy

Gast
Dateigrösse von C++ Programmen

Hallo zusammen,
ich habe nicht wirklich ein Problem, sondern eine Frage: Wenn ich unter Windows ein primitives C++ Programm(50 Zeilen oder so, also wirklich primitiv) kompiliere, wird die Datei ungefähr 500kbyte gross. Wenn ich es aber unter Unix (besser gesagt Solaris) kompiliere, der exakt selbe Code, wird das Programm gerade mal so 8kbyte. Bei beiden Kompiliervorgängen benutze ich den g++-Compiler. Die Version weiss ich nicht, sollte aber wohl kaum eine Rolle spielen. Wieso sind Linux-C++ Programme so viel klieiner als die von Windows?
 
AW: Dateigrösse von C++ Programmen

Kommt drauf an, wie du den Code compilierst. Ob als W32 (Windows) oder Konsolenanwendung (Dos/Unix).

W32 schleppen um einiges mehr an Management Code mit, der die Ausführung unter Windows vorbereitet. Wenns ne W32 .exe im PE-Format wird, ist die nochmal ein Stück größer, liegt einfach daran, dass die PE Struktur um einiges komplexer ist als die normale .exe

Wenn es aber beidemale eine Konsolenanwendung ist (sprich ein Dos-Programm unter Windows) dann sollte der Unterschied nicht so groß sein.
 
AW: Dateigrösse von C++ Programmen

Es sind "Konsolenprogramme", wie du es so schön nennst. Vom anderen werde ich wohl nie eine Ahnung haben *g*.
Ob es jetzt im PE-Format kompiliert ist, keine Ahnung, wie finde ich das raus? Auf jeden Fall, wenn ich in Windows und Unix den genau gleichen Kompilierbefehlssatz gebe, ist der Unterschied wirklich so wahnsinnig gross.
Ich habe jetzt extra nochmal den Test gemacht. Die exakt selbe C++-Datei habe ich kompiliert. Ergebnis: Solaris: 9.85kB, Windows 463kB.
Compiler habe ich den g++ 3.4.3 auf Solaris und auf Windows weiss ich nicht, aber der, der beim neusten Dev-Cpp dabei ist. (3.92 Beta)
Beide habe ich "von Hand" kompiliert, das heisst, mit Befehlszeile, und es ist eben so ein Konsolenprogramm, und es sind keine 20 Zeilen Code :ugly: .
Und der Code, den ich kompiliert habe, sollte man nach spätestens 5 Stunden, nachdem man mit C++ angefangen hat, verstehen, also wirklich sehr einfach.
 
AW: Dateigrösse von C++ Programmen

Der iostream Header veranlasst Linker, die die Objektdateien für Windows erstellen, eine ganze Menge Implementierungszeug mit hineinzulinken (ich bezweifel, dass das Programm alle benötigt), ob nun der gnu C++ Compiler oder Microsofts, die EXE-Dateien werden eigentlich immer so groß wie bei dir.

Wenn du stattdessen C's printf() & Co nimmst, wird das Programm wesentlich kleiner gelinkt. Warum das so ausartet und auf anderen Plattformen nicht so extrem ist (Linux-Programme sind dann um die 16 KB groß), weiß ich nicht.
 
Zurück