2017-04-06 384 views
0

我试图ld -s是什么意思?

$ man ld 

,他们已经提供了-s选项的定义,有点以上我的理解程度。剥离符号意味着什么?请指定我认为有用的任何链接。谢谢。

+1

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

+0

感谢您的链接! –

回答

2

ld将多个目标文件链接成一个二进制文件。该二进制文件通常包含一个符号表,其中包含程序中使用的所有符号的名称,类型,大小和地址。例如,当您想要一个较小的二进制文件(在大型程序中,符号表可以包含多个兆字节的符号)或者当您不想泄漏时,有时候可以省略此表有关程序如何实现的信息 - 请记住,符号表包含所有函数和(静态)变量名称。

传统上,strip实用程序用于此目的。 strip接收二进制文件并删除其符号表以及执行程序时不严格需要的其他元数据,例如调试信息。然而,当时链接和磁盘IO速度很慢,人们为链接器添加了一个-s(用于strip)选项,以免它首先发出此信息,从而加快了链接阶段。

+0

非常感谢! –