一、下面是manstrip获得到的信息,简单的说就是给文件脱掉外衣,具体就是从特定文件中撕掉一些符号信息和调试信息,使文件变小。
NAME
strip-Discardsymbolsfromobjectfiles.
SYNOPSIS
strip
-Fbfdname|--target=bfdname
-Ibfdname|--input-target=bfdname
-Obfdname|--output-target=bfdname
-s|--strip-all
-S|-g|-d|--strip-debug
-Ksymbolname|--keep-symbol=symbolname
-Nsymbolname|--strip-symbol=symbolname
-w|--wildcard
-x|--discard-all
-X|--discard-locals
-Rsectionname|--remove-section=sectionname
-p|--preserve-dates
--keep-file-symbols
--only-keep-debug
-v|--verbose
-V|--version
objfile…
DESCRIPTION
GNUstripdiscardsallsymbolsfromobjectfilesobjfile. Thelistofobjectfilesmayincludearchives. At
leastoneobjectfilemustbegiven.
stripmodifiesthefilesnamedinitsargument,ratherthanwritingmodifiedcopiesunderdifferentnames.
2、实际测试。
I、测试代码strip.c:
#include
voidmain()
printf(“stripn”);
II、在liunx下执行gccstrip.clinux strip命令,会生成a.out。执行ls-l a.out看一下文件大小,用file命令来查看文件
基本信息的linux strip命令linux文件系统,用nm命令来列举一个目标文件中的各类符号。
III、执行stripa.out,之后执行ls-l a.out看一下文件大小,用file命令来查看文件基本信息
的,用nm命令 来列举一个目标文件中的各类符号。很显著,文件早已变小了,早已没有相关的符号信息了。
IV、执行./a.out,说明strip后文件变小了,但还是可以正常的运行。
三、小结.
综上所述,strip命令用于脱掉文件的衣物,文件会变小,其中的符号信息会丧失。那这个strip有哪些
用呢?很有用的!原先的a.out比较大,可以执行。在strip以后,文件变小了,也是可以执行,这就节约了很多空间.
虽然,strip不仅仅可以针对可执行文件,能够针对目标文件和动态库等.
在实际的开发中,常常须要对动态库.so进行strip操作,降低占地空间。而在调试的时侯(例如用addr2line)linux 关机命令,就须要符号了。因而,一般的做法是:strip前的库拿来调试,strip后的库拿来实际发布,她们二者有对应关系。一旦发布的strip后的库出了问题,就可以找对应的未strip的库来定位。
比如某个动态库strip前是50M左右,strip后是20M左右,可见,脱脱外套还是有显著用处的。
我们在调试过程中,常常涉及到上传库,库太大时,很花费传输时间,所以还是先用strip来处理一下比较好。
(76条消息)linux中的strip命令简介_海月汐辰-CSDN博客_linuxstrip