【linux调试】linux中的strip命令简介

strip

一、下面是man strip获得到的信息,简单的说就是给文件脱掉外衣,具体就是从特定文件中剥掉一些符号信息和调试信息,使文件变小。

请添加图片描述

二、实际测试

1.测试代码strip.c:

#include <stdio.h>  
 
void main()  
{  
	printf("strip\n"); 
}  

2.在liunx下执行gcc strip.c,会生成a.out。执行ls -l a.out看一下文件大小,用file命令来查看文件

基本信息的,用nm命令来列出一个目标文件中的各种符号。

请添加图片描述

3.执行strip a.out,然后执行ls -l a.out看一下文件大小,用file命令来查看文件基本信息 的,用nm命令 来列出一个目标文件中的各种符号。很明显,文件已经变小了,已经没有相关的符号信息了。

请添加图片描述

三、小结

​ 综上所述, strip命令用于脱掉文件的衣服, 文件会变小, 其中的符号信息会失去。 那这个strip有什么用呢? 很有用的! 原来的a.out比较大, 可以执行。 在strip之后, 文件变小了, 也是可以执行, 这就节省了很多空间。

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

​ 例如某个动态库strip前是50M左右, strip后是20M左右, 可见, 脱脱衣服还是有明显好处的。
​ 我们在调试过程中, 经常涉及到上传库, 库太大时, 很耗费传输时间, 所以还是先用strip来处理一下比较好。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值