2017-04-06 1 views
0

Ich versuchteWas genau bedeutet ld -s?

$ man ld 

Die Definition sie für die Option es zur Verfügung gestellt hat, war von Verständnis etwas über mein Niveau. Was genau bedeutet Strippen von Symbolen? Bitte geben Sie alle Links an, die ich nützlich finden könnte. Vielen Dank.

+1

https://en.wikipedia.org/wiki/Strip_%28Unix%29 – Tommylee2k

+0

Danke für den Link !! –

Antwort

2

ld verknüpft eine Anzahl von Objektdateien in eine Binärdatei. Diese Binärdatei enthält normalerweise eine Symboltabelle, die die Namen, Typen, Größen und Adressen aller in Ihrem Programm verwendeten Symbole enthält.

Manchmal ist es wünschenswert, diese Tabelle wegzulassen, zum Beispiel, wenn Sie eine kleinere Binärdatei haben möchten (in großen Programmen kann die Symboltabelle mehrere Megabyte Symbole enthalten) oder wenn Sie nicht auslaufen wollen Informationen darüber, wie das Programm implementiert wurde - denken Sie daran, die Symboltabelle enthält alle Funktions- und (statischen) Variablennamen.

Traditionell wurde das Dienstprogramm strip für diesen Zweck verwendet. strip nimmt eine Binärdatei und entfernt ihre Symboltabelle sowie andere Metadaten, die nicht unbedingt zum Ausführen des Programms benötigt werden, wie zum Beispiel Debug-Informationen. Allerdings war die Link- und Festplatten-IO damals langsam und Leute fügten dem Linker eine -s (für Streifen) -Option hinzu, um diese Information überhaupt nicht zu emittieren, was die Verknüpfungsstufe um ein bisschen beschleunigte.

+0

Vielen Dank !! –