strip命令简介
一、基本定义
strip指令常用于对文件的符号表和调试信息。包括了ELF对象的信息
Note:
(1)使用strip裁剪过后的文件不可以再恢复;
(2)strip指令执行后,不了编译选项-g将无效,即无调试信息
二、命令格式即参数
以下是官方详细的命令格式
strip [选项]
选项对应的声明
[-F bfdname |–target=bfdname]
[-I bfdname |–input-target=bfdname]
[-O bfdname |–output-target=bfdname]
[-s|–strip-all]
[-S|-g|-d|–strip-debug]
[–strip-dwo]
[-K symbolname|–keep-symbol=symbolname]
[-M|–merge-notes][–no-merge-notes]
[-N symbolname |–strip-symbol=symbolname]
[-w|-- wildcard] // 支持通配符
[-x|–discard-all] [-X |–discard-locals]
[-R sectionname |–remove-section=sectionname]
[–keep-section=sectionpattern]
[–remove-relocations=sectionpattern]
[-o file] [-p|–preserve-dates]
[-D|–enable-deterministic-archives]
[-U|–disable-deterministic-archives]
[–keep-section-symbols]
[–keep-file-symbols]
[–only-keep-debug]
[-v |–verbose] [-V|–version]
[–help] [–info]
说明
[-F bfdname |--target=bfdname]
设置输入和输出的文件格式
[-I bfdname |--input-target=bfdname]
设置输入的文件格式
[-O bfdname |--output-target=bfdname]
设置输出的文件格式
[-s|--strip-all]
删除所有的符号——包括.symbol和.debug的信息(默认选项)
[-S|-g|-d|--strip-debug]
只删除 .debug的符号信息
--strip-unneeded
删除重定位时需要的符号,但是保留全局符号
[-K symbolname|--keep-symbol=symbolname]
即使删除了符号,但保留符号名称