strip 命令
用途
通过除去绑定程序和符号调试程序使用的信息,减少扩展公共对象文件格式(XCOFF)的对象文件的大小。
语法
条 [ -V] [ - [ -我 ] | -x [ -我 ] | -t | -H | -e | -E ] [ -X {32|64|32_64}] [ — ] 文件 ...
描述
strip 命令减少 XCOFF 对象文件的大小。 strip 命令从 XCOFF 对象文件中有选择地除去行号信息、重定位信息、调试段、typchk 段、注释段、文件头以及所有或部分符号表。 一旦您使用该命令,那么很难调试文件的符号;因此,通常应该只在已经调试和测试过的生成模块上使用 strip 命令。 使用 strip 命令减少对象文件所需的存储量开销。
对于每个对象模块,strip 命令除去给出的选项所指定的信息。 对于每个归档文件,strip 命令从归档中除去全局符号表。
可以使用 ar -s 命令将除去的符号表恢复到归档文件或库文件中。
没有选项的 strip 命令除去行号信息、重定位信息、符号表、调试段、typchk 段和注释段。
标志
| 项 | 描述 |
|---|---|
| -e | 在对象文件的可选头中设置 F_LOADONLY 标志。 如果对象文件放置在归档中,那么该标志指示绑定程序(ld 命令),在与此归档链接时应忽略该对象文件中的符号。 |
| -E | 复位(关闭)对象文件的可选头中的 F_LOADONLY 位。 (请参阅 -e 标志。) |
| -h | 除去对象文件头、任何可选的头以及所有段的头部分。注:不除去符号表信息。 |
| -l | (小写 L)从对象文件中除去行号信息。 |
| 项 | 描述 |
|---|---|
| -r | 除了外部符号和静态符号条目,将全部符号表信息除去。 不除去重定位信息。 同时除去调试段和 typchk 段。 这个选项产生一个对象文件,该对象文件仍可以用作输入到链接编辑器(ld 命令)中。 |
| -t | 除去大多数符号表信息,但并不除去函数符号或行号信息。 |
| -V | 显示 strip 命令的版本号。 |
| -x | 除去符号表信息,但并不除去静态或外部符号信息。 -x 标志同时除去重定位信息,因此将不可能链接到该文件。 |
| -X 方式 | 指定应检查 strip 的对象文件的类型。 mode 必须是以下各项中的一个:
缺省值为处理 32 位对象文件(忽略 64 位对象文件)。 mode 也可用 OBJECT_MODE 环境变量来设置。 例如,OBJECT_MODE=64 使 strip 处理任何 64 位对象文件,并忽略 32 位对象文件。 -X 标志覆盖 OBJECT_MODE 变量。 |
| — | (双连字符)将跟随在该标志后的所有参数解释为文件名。 这就允许除去名称是以连字符开始的文件。 |
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 成功完成。 |
| > 0 | 发生错误。 |
示例
- 要从 a.out 文件中除去符号表和行号信息,请输入:
strip a.out - 要除去 a.out 文件的对象文件头,请输入:
strip -H a.out - 要除去 lib.a 中的 32 位和 64 位符号表,请输入:
strip -X 32_64 lib.a
文件
| 项 | 描述 |
|---|---|
| /usr/ccs/bin/strip | 包含 strip 命令。 |