Executable wird zu groß
-
man strip!
dh: klick den link von supertux!
-
lolipop schrieb:
Was macht strip genau?
-
lolipop schrieb:
lolipop schrieb:
Was macht strip genau?
ich verstehe nicht, was du damit sagen willst.
-
lolipop schrieb:
Was macht strip genau?
man strip schrieb:
GNU strip discards all symbols from object files
-
supertux schrieb:
In jedem vernünftigen System wie GNU/Linux/BSD befindet sich das Tool man: strip(1). Einfach GNU/Linux installieren und dann hast du ein richtiges Betriebsystem mit richtigen Tools für Programmierer.
Ich denke, die Wahl des Betriebssystems solltest du lieber mir überlassen.
Wo bekomme ich sonst das Tool "Strip" her?
-
wo hast du denn den gcc her? vielleicht schlummerts ja schon auf deiner festplatte
ansonsten ist das mit sicherheit bei cygwin dabei.
-
Ja, stimmt. Einfach mit dem Parameter -s kompilieren und meine Datei ist "nur" noch genau 5kb groß. Eine weitere Möglichkeit, die Dateigröße zu verringern, gibt es nicht, oder? 5kb sind mir immer noch 3kb zu groß.
-
Welche Lib linkst du denn alles dazu? Ich weiß net welchen compiler du benutzt aber bei Visaul Studio wird ja standardmäßig alle standad bibliotheken mitgelinkt! vielleicht kann man so auch noch ein paar bytes einsparen weiß es aber nicht genau!
MfG schirrmie
-
Ich verwende im Moment den gcc.
-
iostream schrieb:
Wo bekomme ich sonst das Tool "Strip" her?
das findest du im binutiuls. Alleine wirst du es wohl nicht bekommen, weil es ein Teil von binutils ist.
-
Ich hab mir nun diese binutils runtergeladen. Finde aber kein "strip".
-
Du musst es kompilieren und installieren. Was du runtergeladen hast sind die Sources.
$ su - (sich als root einloggen) $ cd /pfad_wo_binutils_source_ist $ ./configure && make && make install
-
iostream schrieb:
Ich hab mir nun diese binutils runtergeladen. Finde aber kein "strip".
Lade dir mal cygwin runter. Da ist es auch dabei.
-
MaSTaH schrieb:
iostream schrieb:
Ich hab mir nun diese binutils runtergeladen. Finde aber kein "strip".
Lade dir mal cygwin runter. Da ist es auch dabei.
das Problem von cygwin (oder zumindest von den alten Versionen) ist, dass wenn das ein Computer kein cygwin hat und eine Datei ausführen will, die unter ne cygwin Umgebung erstellt worden ist, läuft sich nicht.
-
supertux schrieb:
Du musst es kompilieren und installieren. Was du runtergeladen hast sind die Sources.
Stimmt, natürlich ...
So, nun habe ich "strip" und bin mit dem Parameter "--strip-all" über die Datei gefahren. Von 14kb auf 5kb. Ist zwar um über 60% kleiner als davor, aber das ist mir immer noch zu viel. Für ein einfaches "Hello World" in der Konsole müsste man doch auf 1kb kommen können.
Jemand noch eine Idee, was ich machen könnte?
-
vielleicht hilft das hier weiter?
http://www.masmforum.com/simple/index.php?topic=166.0
ist zwar für den falschen compiler, aber möglicherweise hilft einer der folgenden links.
-
Ich verstehe immer noch nicht, warum du so paranoid bist. Zwar ist es wirklich schön, wenn die Binaries kleiner werden, aber ich verstehe nicht, warum die ganze Mühe mit Bruteforce.
-
@camper: Sehr schön, ein Windows-Fenster mit 2kb. So habe ich mir das vorgestellt. Danke.
@supertux: Es gibt halt Leute, die wollen das letzte aus jedem Bit herausholen. Einen Sinn hat das zwar nicht unbedingt, aber es macht Spaß.
-
iostream schrieb:
@supertux: Es gibt halt Leute, die wollen das letzte aus jedem Bit herausholen. Einen Sinn hat das zwar nicht unbedingt, aber es macht Spaß.
Dann solltest du dir aber überlegen wirklich nur Assembler zu programmieren.