strip命令 – 从特定文件中去除一些符号信息和调试信息

Linux命令 统信UOS系统管理员 2个月前 (03-18) 45次浏览 0个评论 扫描二维码

strip 命令通过除去绑定程序和符号调试程序使用的信息,降低扩展公共对象文件格式(XCOFF)的对象文件的大小。

strip 不仅仅可以针对可执行文件, 还能针对目标文件和动态库等。

在实际的开发中, 经常需要对动态库.so 进行 strip 操作, 减少占地空间。而在调试的时候(比如用 addr2line), 就需要符号了。因此, 通常的做法是:strip 前的库用来调试, strip 后的库用来实际发布, 他们两者有对应关系。 一旦发布的 strip 后的库出了问题, 就可以找对应的未 strip 的库来定位。

语法格式:strip [参数]

常用参数:

-e 在对象文件的可选头中设置 F_LOADONLY 标志
-E 复位(关闭)对象文件的可选头中的 F_LOADONLY 位
-H 除去对象文件头、不论什么可选的头以及全部段的头部分
-l (小写 L)从对象文件里除去行号信息。
-r 除了外部符号和静态符号条目,将所有符号表信息除去
-t 除去大多数符号表信息,但并不除去函数符号或行号信息
-V 打印 strip 命令的版本
-x 除去符号表信息,但并不除去静态或外部符号信息

参考实例

要除去 a.out 文件里的符号表和行号信息,请输入:

[root@xtuos.com ~]# strip a.out

要除去 a.out 文件里的对象文件头,请输入:

[root@xtuos.com ~]# strip -H a.out

要除去 lib.a 中的 32 位和 64 位符号表,请输入:

[root@xtuos.com ~]# strip -X 32-64 lib.a


统信UOS之家 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:strip命令 – 从特定文件中去除一些符号信息和调试信息
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址