strip
一、下面是manstrip获得到的信息,简单的说就是给文件脱掉外衣,具体就是从特定文件中撕掉一些符号信息和调试信息,使文件变小。
二、实际测试
1.测试代码strip.c:
#include
void main()
{
printf("stripn");
}
2.在liunx下执行gccstrip.c,会生成a.out。执行ls-la.out看一下文件大小,用file命令来查看文件
基本信息的,用nm命令来列举一个目标文件中的各类符号。
3.执行stripa.out,之后执行ls-la.out看一下文件大小,用file命令来查看文件基本信息的,用nm命令来列举一个目标文件中的各类符号。很显著linux strip命令,文件早已变小了,早已没有相关的符号信息了。
三、小结
综上所述,strip命令用于脱掉文件的衣物,文件会变小,其中的符号信息会丧失。那这个strip有哪些用呢?很有用的!原先的a.out比较大,可以执行。在strip以后,文件变小了,也是可以执行,这就节约了很多空间。
虽然,strip不仅仅可以针对可执行文件,能够针对目标文件和动态库等。在实际的开发中,常常须要对动态库.so进行strip操作,降低占地空间。而在调试的时侯(例如用addr2line),就须要符号了。因而,一般的做法是:strip前的库拿来调试linux操作系统好吗,strip后的库拿来实际发布linux strip命令,她们二者有对应关系。一旦发布的strip后的库出了问题,就可以找对应的未strip的库来定位。
比如某个动态库strip前是50M左右,strip后是20M左右,可见,脱脱衣物还是有显著用处的。
我们在调试过程中,常常涉及到上传库linux命令手册,库太大时,很花费传输时间,所以还是先用strip来处理一下比较好。