这个小应用程序是干什么用的?
在不加任何选项的情况下使用它可以减小可执行文件的大小,但是它是如何做到的?
在不加任何选项的情况下使用它可以减小可执行文件的大小,但是它是如何做到的?
来自(Mac OS X,但其他操作系统类似)man页面:
strip 命令用于删除或修改附加到汇编器和链接编辑器输出的符号表。这对于在程序调试完成后节省空间并限制动态绑定符号非常有用。
请注意“程序调试完成后”的部分,因为调试已经剥离的可执行文件是非常困难的。 “限制动态绑定符号”是一个较少使用的功能:它允许您通过去除告知实际代码位置的索引条目来使外部库中的某些函数不可访问。这也在man页面中解释过了。
尽管大多数情况下磁盘都很便宜且富足,您可能还是希望用于空间受限的情况,例如嵌入式设备,救援磁盘等。
它会从二进制文件中去除符号信息。二进制文件包含将符号(例如函数名)映射到特定位置的一些信息。strip
会删除这些信息。