kostenloser Webspace werbefrei: lima-city


g++ Einstellungen

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    sw1tch

    Kostenloser Webspace von sw1tch, auf Homepage erstellen warten

    sw1tch hat kostenlosen Webspace.

    Ich versuche mich derzeit in der Kompilation mithilfe von g++ einzufinden, doch verwundert mich die Größe der kompilierten Datei.
    Ich verwende als Parameter lediglich "-o Filename.cpp" und bei einer einfach HelloWorld-Anwendung verbraucht die Executable knapp 485kb.
    Nun frage ich mich, ob ich meine Parameter noch optimieren könnte, damit die Anwendung deutlich kleiner wird.

    MfG Sw1tch

    E:
    Die Optionen -O3 und -Os sind mir bekannt, verringern aber in dem HelloWorld-Programm nicht die Größe.

    Beitrag zuletzt geändert: 19.11.2009 22:12:04 von sw1tch
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage


  3. "-o Filename.cpp"

    Sicher? Wenn du das so notierst, überschreibst du deinen Quellcode.


    Die Optionen -O3 und -Os sind mir bekannt, verringern aber in dem HelloWorld-Programm nicht die Größe.

    Sie können sogar dafür sorgen, dass das compilierte Programm größer wird, wenn Techniken wie Loop-Unroling verwendet werden.
    Diese Optionen dienen dazu die Ausführungsgeschwindigkeit zu erhöhen. Dies kann auch durch eine Vergrößerung des Programms in bestimmten Fällen erreicht werden.
    Sie dienen aber nicht dazu die Binärdatei zu verkleinern. Das kann höchstens ein Seiteneffekt sein.

    Falls du deine Anwendungen wirklich deutlich kleiner machen willst, dann mach einfach

    strip compiliertes_programm

    und dann sollte die Programmdatei erheblich kleiner sein. An der Ausführungsgeschwindigkeit des Programms ändert das aber rein gar nix.


    Noch mal ein paar Erläuterungen: Unter Linux ist das ELF-Binärfomat gängig. Dieses enthält einige Zusatzinfos, die man aber größtenteils durch strip wieder beseitigen kann. Falls du dir mal anschauen willst, was so an Daten darin gespeichert ist, hilft der Befehl
    nm compiliertes_programm

    weiter.

    Außerdem baut der Compiler automatisch weiteren Code um deinen Code herum, so dass dein Programm Aufrufe an die Standard-C-Library machen kann. Daher ist ein simples Hello-World Programm unter Linux auch erheblich größer als unter DOS.
    Und Aufrufe an die Standard-C-Library braucht man eigentlich immer.

    Beitrag zuletzt geändert: 19.11.2009 22:47:55 von bladehunter
  4. Autor dieses Themas

    sw1tch

    Kostenloser Webspace von sw1tch, auf Homepage erstellen warten

    sw1tch hat kostenlosen Webspace.

    Schonmal vielen Dank für die gute Antwort.
    Ich verwende g++ unter Windows und die Notierung hab ich hier natürlich falsch gepostet.
    Ich habe als "Fehlerquelle" schonmal die Verwendung von iostream [cout] ausmachen können. Verwende ich lediglich stdio [printf] verringert sich die Größe von besagten 485kb auf ca 16kb.

    Könntest du nochmal ein kurzes Bsp. für die Verwendung von strip geben?

    MfG Sw1tch

    Ah ich glaube ich habs, es müsste einfach nur -s sein...

    Beitrag zuletzt geändert: 20.11.2009 13:36:57 von sw1tch
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!