相关文章推荐
健壮的回锅肉  ·  JAVA POI 设置 Word ...·  8 月前    · 
霸气的烈马  ·  如何在Google ...·  1 年前    · 


UNIX下文件压缩命令compress大家都比较熟悉了,它的压缩率比较高, 和tar命令结合使用来做数据备份是最合适不过了。但compress压缩也有缺点,就是被压缩后的文件需要用命令uncompress解压后才能正常使用。而用strip命令就没有这个问题,它能清除执行文件中不必要的标示符及调试信息,可减小文件大小而不影响正常使用。但与compress 不同的是,文件一旦strip后就不能恢复原样了,所以strip是一个减肥工具而不是压缩工具。而且,被strip后的文件不包含调试信息,就不能用 dbx来调试程序了。现在让我们来具体效果如何,看下面一个程序:

#include 
  main() 
  printf("hello, world/n"); 

  用cc编译以后长度为46176字节,用strip后变为了 30648,足足减小了 1/3,而且仍然可以正常执行。除了用strip外,用共享库也是减小执行文件长度的方法。
   1.如果文件大小没有减小,那就是已经strip过了.

  2.cc 编译时加上"-s"参数,具有同样的作用

==================================================================================

strip命令详解

用途


通过除去绑定程序和符号调试程序使用的信息,减少扩展公共对象文件格式(XCOFF)的对象文件的大小。


语法

strip [ -V] [ -r [ -l ] | -x [ -l ] | -t | -H | -e | -E ] [ -X {32 |64 |32_64 [ -- ] File ...


描述


strip 命令减少 XCOFF 对象文件的大小。strip 命令从 XCOFF 对象文件中有选择地除去行号信息、重定位信息、调试段、typchk 段、注释段、文件头以及所有或部分符号表。 一旦您使用该命令,则很难调试文件的符号;因此,通常应该只在已经调试和测试过的生成模块上使用 strip 命令。使用 strip


strip 命令除去给出的选项所指定的信息。对于每个归档文件,strip


ar -s


strip


标志


-e

在对象文件的可选头中设置 F_LOADONLY 标志。如果对象文件放置在归档中,则该标志告知绑定程序(ld命令),在与此归档链接时应忽略该对象文件中的符号。

-E

复位(关闭)对象文件的可选头中的 F_LOADONLY 位。(请参阅 -e

-H

除去对象文件头、任何可选的头以及所有段的头部分。


注:

-l

(小写 L)从对象文件中除去行号信息。

 


-r

除了外部符号和静态符号条目,将全部符号表信息除去。不除去重定位信息。同时除去调试段和 typchk 段。这个选项产生一个对象文件,该对象文件仍可以用作输入到链接编辑器(ld

-t

除去大多数符号表信息,但并不除去函数符号或行号信息。

-V

打印 strip

-x

除去符号表信息,但并不除去静态或外部符号信息。 -x

-X mode

指定应检查 strip 的对象文件的类型。 mode 必须是下列之一:

只处理 32 位对象文件 64 只处理 64 位对象文件 32_64 既处理 32 位对象文件,又处理 64 位对象文件

缺省值是处理 32 位对象文件(忽略 64 位对象文件)。也可以用 OBJECT_MODE 环境变量来设置mode 。例如,OBJECT_MODE=64 使 strip 处理任何 64 位对象文件,并忽略 32 位对象文件。-X 标志重设 OBJECT_MODE

--

(双连字符)将跟随在该标志后的所有参数解释为文件名。这就允许除去名称是以连字符开始的文件。


退出状态


该命令返回以下退出值:


0

成功完成。

>0

出错。


示例

  1.  要除去 a.out 文件中的符号表和行号信息,请输入:strip a.out
  2.  要除去 a.out 文件中的对象文件头,请输入:strip -H a.out
  3. 要除去 lib.a 中的 32 位和 64 位符号表,请输入:strip -X 32-64 lib.a


文件

/usr/ccs/bin/strip

包含 strip


java 使用枚举类型定义map java枚举类型作为参数

枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。 Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。 1.它不能有publ