Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
18.03.2002, 19:21
WareWolf



Es geht um die Grösse der ausführbaren Exe Datei bei C++ Programmierung.

Ich bin Spracheinsteiger und hab ein kleines 32Bit Consolenprogramm geschrieben. Es werden 20 Reihen mit Zufallszahlen zwischen 1u.49 erzeugt und jeweils in einem Array abgelegt. Die Zahlenwerte werden der Grösse nach sortiert und auf dem Bildschirm ausgegeben. Ein typisches Anfängerprogramm also.

Compiliere ich den Source mit MS VC++6.0 (und ich habe die Debug Optionen abgeschalten), dann ist die Länge der erzeugten Exe 129 KB. Compiliere ich jedoch die gleiche Quelldatei mit dem FreewareCompiler Bloodshed DEV-C++ dann ist die Exe jedoch nur 78KB gross. Da ich aus der Assembler Programmierung komme, bin ich in diesem Punkt ziehmlich penibel, immerhin ist das Microsoft Ergebnis fast doppelt so gross.

Wahrscheinlich bilde ich mir auch noch ein, dass der Bloodshed auch noch schnelleren Code erzeugt, weil weniger "unnützes Zeug" eingelinkt wird.
Wie sind die Meinungen der "Profis" hierzu ?

--

Sig as a brick ┴┬┴┬┴┬┴┬┴┬┴┬┴
WW

zum Seitenanfang zum Seitenende Profil || Suche
001
18.03.2002, 21:41
Kriz



Niemand weiß genau, was der VC++ COmpiler noch einbindet. Wenn ich die ganzen unsichtbaren M$-Deklarationen für Funktionen, Aufrufkonventionen ect. bedenke, dann kann es schon sein, das die EXE größer ist als bei anderen Compilern. Aber andererseits möchte ichzu bedenken geben, daß all dieses Extrazeugs für einen reibungslosen Ablauf unter Win eventuell wichtig ist. Angesichts der heutigen Zeit darf es aber einem Beside-Programmierer egal sein, wie groß die EXE im Endeffekt wird (ohne Debug natürlich).

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
002
19.03.2002, 08:11
Sccar



hast du als debug oder release version kompiliert? wenn du als debug version kompiliert hast, versuchs mal mit der release version, die sollte dann kleiner sein.

sccar

--

...das is zwar der uebelst gehackteste kleine bastard, den ich je gesehen habe, aber dafuer sauschnell. {Tron}

zum Seitenanfang zum Seitenende Profil || Suche
003
19.03.2002, 08:33
WareWolf



Oha, tatsächlich..ich hab die release Einstellungen nur an der falschen Stelle gemacht, hatte die "aktive Konfiguration" für das Projekt noch auf debug. Mein Fehler.
THX Leute.

--

Sig as a brick ┴┬┴┬┴┬┴┬┴┬┴┬┴
WW

zum Seitenanfang zum Seitenende Profil || Suche
004
19.03.2002, 18:56
Diablo_bth



aber an der Sache ist schon was dran, dass M$VC++ manchaml unnötiges Zeugs einbindet. Man kann hier ein wenig mit /nodefaultlib:"bibliothek" in Prolekteinstellungen->Linker->ProjektOptionen am Linkerverhalten drehen. bei mir stand z.B.die "LIBCMTD" im Konflikt mit anderen Bibliotheken und als ich diese mit nodefault abserviert hatte war die .exe promt ein Drittel kleiner!

--

zum Seitenanfang zum Seitenende Profil || Suche