Aufgeblasenes Programm?



  • Mein aktuelles Projekt (C++) hat erst 1-2 KSLOC, aber ist kompiliert 757.3 kB groß. Ist das normal?

    Hab ich da was am Compiler falsch eingestellt 😕



  • Wenn du die C++-Runtime statisch linkst, dann ist das normal.
    Ansonsten solltest du überprüfen, ob du Debugsymbole angeschalten hast.



  • Okay, ohne -g sind es noch immer > 100 kB 🙄



  • ~100 KB für 2000 Zeilen Code ist ebenfalls im Normalbereich. Wunder wirken kann der Compiler nicht, aber du kannst es mit -Os versuchen, wenn nicht schon geschehen.



  • Nachtrag: wenn dir viel an der Größe liegt, kannst du auch ein monolithic target erstellen, das nur aus einer einzigen translation unit besteht (indem du die anderen .cpp-Dateien direkt einbindest). Dann kannst du bei gcc/clang mit -fwhole-program kompilieren. Das wirft alle Funktionen weg, die nicht nachweislich von deinem Programm verwendet werden.

    -flto -fwhole-program geht neuerdings auch, liefert leider noch keine guten Ergebnisse, d.h. er lässt viel drin, das eigentlich nicht nötig wäre (gcc 4.8 hab ich allerdings noch nicht getestet).


Anmelden zum Antworten