删除目标文件中的标识符
strip [-dgpsSvwxX] [-F bfdname] [--info] [-I bfdname] [-K symbol] [--keep-file-symbols] [-N symbol] [-o file] [-O bfdname] [--only-keep-debug] [-R section] objfiles
strip [--help] [--info] [-V|--version]
strip命令用于删除指定目标文件中的所有标识符。其中,objfile是一个或一组目标文件,也可以是档案文件。在运行strip命令时,至少必须给定一个文件参数。
除非使用“-o”选项另有指定,strip命令通常是在修改给定的目标文件之后,再以修改后的结果替换给定目标文件的初始内容,而不是把修改后的处理结果写到不同名字的文件中。
-F bfdname, --target=bfdname 按照指定的目标代码格式bfdname,处理命令行文件参数指定的初始目标文件objfile,最后以相同的格式重写objfile文件。可用的目标代码格式是elf32-i386和elf64-x86-64等,参见“--info”选项的输出。
-I bfdname, --input-target=bfdname 按照指定的目标代码格式bfdname,处理命令行文件参数指定的初始目标文件objfile。
-K symbol, --keep-symbol=symbol 在删除标识符时,保留指定的标识符symbol,即使在常规情况下应当删除这个标识符也是如此。这个选项可以重复指定多次。
-N symbol, --strip-symbol=symbol 从源代码文件中删除指定的标识符symbol。这个选项可以重复指定多次,也可以与“-K”之外的其他选项组合使用。
-o file 把删除标识符后的输出结果写到指定的文件,而不是替代现有的文件。当使用这个选项指定输出文件参数file时,命令行中只能指定一个目标文件参数objfile。
-O bfdname, --output-target=bfdname 使用指定目标代码格式bfdname的输出文件取代objfile文件。
-p, --preserve-dates 保持文件的访问与修改时间不变。
-R section, --remove-section=section 从输出文件中删除指定节名为section的代码段。这个选项可以重复指定多次。注意,这个选项如果使用不当,可能会导致输出文件不可用。
-s, --strip-all 删除所有的标识符。
-S, -d, -g, --strip-debug 仅删除调试符号。
-v, --verbose 详细显示模式。显示修改的所有目标文件列表。在处理档案文件的情况下,“strip -v”命令将会显示档案文件中的所有成员文件列表。
-w, --wildcard 允许在“-K”或“-N”等选项指定的标识符参数symbol中使用正则表达式。在指定选项参数的标识符名字中,可以使用“?”、“*”、“\”和“[ ]”等元字符,但在包含元字符时,前后必须加单双引号。如果标识符名字中的第一个字符是“!”,表示取其反义。注意,加“!”时前后必须加单引号。例如,“-w -K '!_*'”表示删除以下画线“_”为首字符的标识符,保留其他任何标识符。
-x, --discard-all 删除非全局的标识符。
-X, --discard-locals 删除编译器生成的局部标识符(通常以“L”或“.”为首字符)。
--info 显示适用各种系统结构的可用目标代码格式列表,然后退出。
--keep-file-symbols 当使用“--strip-debug”或“--strip-unneeded”等选项删除文件中的标识符时,保留指定源代码文件名的任何标识符。如果不同时指定此选项,这样的标识符也会随之一同删除。
--only-keep-debug 删除“--strip-debug”选项未能删除的任何段内的标识符,完整无损地保留调试段。对于ELF目标文件而言,这将会在输出文件中保留所有的注释段。
--strip-unneeded 删除重定位处理不需要的所有标识符。
@file 从指定的文件中读取命令行选项。把读取的选项插入@file的位置,替换该选项。如果file不存在或无法读,按文字处理该选项,但不会删除。选项的写法如同命令行,多个选项之间需加空白字符作为分隔符。文件中也可以包括@file选项,采用同样的方法递归处理。
1. 删除目标文件中的标识符,保持文件的访问与修改时间不变。
$ date Thu Mar 29 10:23:21 CST 2012 $ ls -l atmmon -rwxr-xr-x. 1 gqxing gqxing 37897 Mar 27 21:46 atmmon $ strip -p atmmon $ ls -l atmmon -rwxr-xr-x. 1 gqxing gqxing 31096 Mar 27 21:46 atmmon $
2. 删除目标文件中任何标识符,把处理后的可执行文件写到指定的文件中。
$ strip -s -o atmmon2 atmmon $
索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z