Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103121413
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-03-26 19:28:37


   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"参数,具有同样的作用。 

某种节约空间的办法: 
   那就是对于单个比较大的可执行文件可以编写一个zexec脚本.下面的脚本只是针对/usr/bin/cc的 
   uncompress ./cc.Z 
   mv cc /tmp 
   cd /tmp 
   ./cc 

阅读(455) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~