Größe eines einfachen Kommandozeilenprogramms das nur Text-Ein und Ausgabe verwendet

Marius Heil

Erfahrenes Mitglied
Hi,

ich kenn mich bereits in einigen Sprachen aus, C hab ich bisher jedoch nur sporadisch angeschaut. Zum Anfang dachte ich mir, ich lade mit Dev-C++ runter, das ist ne ganz passable IDE. Ein Kommandozeilenprogramm hat wenn man es mir nichts, dir nichts veröffentlicht ca 450 KB. Das find ich definitiv zu viel, muss wohl an iostream liegen, da werden die gnazen Funktionen drin sein, etc. Mich hat das früher als schon aufgeregt, Delphi beispielsweise benötigt für ein kleines Progrämmchen mit Windowsfenster zum Beispiel bereits 3 MB oder so.
Meine Frage ist jetzt, wie bekomm ich die Programme kleiner. Der scheint ja definitiv Funktionen, etc zu exportieren, die im gnazen Programm nicht verwendet werden. Kann ich das unterbinden oder soll ich die Datei zerlegen und nur das importieren, was ich brauch?

Marius
 
Hi.

Heutzutage spielt doch die Größe der Programme (fast) keine Rolle - also jedenfalls regt sich doch keiner darüber auf ;)

Hast du denn im Debug-Modus kompiliert? Wenn ja, sind da noch die ganzen Debugging Symbole drin. Die kannst du mit "strip -s xyz.exe" entfernen.

Dann gibt es auch noch den Compilerschalter "-Os" wo der Compiler mehr auf die Größe als auf die Geschwindigkeit optimiert.

Evlt. kannst du auch auf Ausnahmen verzichten: "-fno-exceptions"

Und evtl. brauchst du auch keine Runtime-Type-Information: "-fno-rtti"

Wenn du wirklich auf die Größe Wert legst, darfst du die STL nicht verwenden. Durch die Instanzierung der Templates etc. wird immer etwas mehr Speicher benötigt werden.

Gruß
 
hi,

wenn das programm über keinerlei grosse funktionalität verfügen soll und klein sein soll,
dann bietet es sich an, es im assembler zu coden;)
 
Hey, danke für die schnellen Antworten. Assembler hatte ich mal kurz angeschaut, aber schnell wieder vergessen, das kommt wenn ich C ein wenig kann :D
Ich dachte mir halt, wenn man in Assembler schon ein 200 kb großes Programm mit GUI, etc programmieren kann, muss so ne C++ IDE so ein Konsolenprogramm doch mit 20 KB hinbekommen.
Im Debugmodus hab ich nicht kompiliert. Mehr auf Größe als Geschwindigkeit wär mir auch nicht unbedingt recht.
Das mit den Exceptions ist ein guter Vorschlag. Ich weiß meist sowieso was ich programmier und kann auf die gut und gern verzichten :D
Mit dem Begriff RTTI kann ich grad wenig anfangen, muss ich erst nachschlagen.
Ich denk ich zieh mir jetzt erstmal einige Lernvideos für C rein, dann brauch ich nur noch ne idee, was ich mit dem neu gewonnenen Wissen programmiere.
Mit Flash und PHP gibts vielfältige Möglichkeiten. Aber C,... :D

Marius
 
Hi.
Ich dachte mir halt, wenn man in Assembler schon ein 200 kb großes Programm mit GUI, etc programmieren kann, muss so ne C++ IDE so ein Konsolenprogramm doch mit 20 KB hinbekommen.
Das hat nichts mit der IDE zu tun. Das ist eine Sache des Compilers und Linkers und der verschiedenen (statischen oder dynamischen) Bibliotheken die hinzugelinkt werden.
Im Debugmodus hab ich nicht kompiliert.
Evtl. ist das die Voreinstellung. Du solltest mal strip ausprobieren.

Es gibt übrigens einen Unterschied zwischen C und C++ der nicht gerade marginal ist.

Gruß
 
So schlecht wie ich informiert bin war der hauptsächliche Unterschied zwischen C und C++ die OOP Unterstützung.
Debugging war nciht voreingestellt.
 
Zurück