Ich muss die Größe meiner ausführbaren Datei stark optimieren ( ARMEntwicklung) und habe festgestellt, dass in meinem aktuellen Build-Schema ( gcc+ ld) nicht verwendete Symbole nicht entfernt werden.
Die Verwendung von arm-strip --strip-unneededfür die resultierenden ausführbaren Dateien / Bibliotheken ändert nichts an der Ausgabegröße der ausführbaren Datei (ich habe keine Ahnung warum, vielleicht kann es einfach nicht) .
Wie kann ich meine Gebäude-Pipeline so ändern (falls vorhanden) , dass die nicht verwendeten Symbole aus der resultierenden Datei entfernt werden?
Ich würde nicht einmal daran denken, aber meine derzeitige eingebettete Umgebung ist nicht sehr "leistungsfähig" und das Speichern selbst 500Kvon 2MErgebnissen führt zu einer sehr schönen Steigerung der Ladeleistung.
Aktualisieren:
Leider hat die aktuelle gccVersion, die ich verwende, keine -dead-stripOption und das -ffunction-sections... + --gc-sectionsfor ldgibt keinen signifikanten Unterschied für die resultierende Ausgabe.
Ich bin schockiert, dass dies sogar zu einem Problem wurde, weil ich mir sicher war, dass gcc + ldnicht verwendete Symbole automatisch entfernt werden sollten (warum müssen sie sie überhaupt behalten?).
boostBibliotheken verwenden, die resultierende .exeDatei viele nicht verwendete Objektdateien enthält und aufgrund der Spezifikationen meiner aktuellen eingebetteten Laufzeit Das Starten einer 10mbAnwendung dauert viel länger als beispielsweise das Starten einer 500kAnwendung.