[转贴]UNIX下执行文件的减肥工具--strip
发表于:2007-06-08来源:作者:点击数:
标签:
[color=blue:34964f973e] UNIX下文件压缩命令compress大家都比较熟悉了,它的压缩率比较高, 和tar命令结合使用来做数据备份是最合适不过了。但compress压缩也 有缺点,就是被压缩后的文件需要用命令uncompress解压后才能正常 使用。而用strip命令就没有这个
[color=blue:34964f973e]
UNIX下文件压缩命令compress大家都比较熟悉了,它的压缩率比较高,
和tar命令结合使用来做数据备份是最合适不过了。但compress压缩也
有缺点,就是被压缩后的文件需要用命令uncompress解压后才能正常
使用。而用strip命令就没有这个问题,它能清除执行文件中不必要的
标示符及调试信息,可减小文件大小而不影响正常使用。但与compress
不同的是,文件一旦strip后就不能恢复原样了,所以strip是一个减肥
工具而不是压缩工具。而且,被strip后的文件不包含调试信息,就不
能用dbx来调试程序了。现在让我们来具体效果如何,看下面一个程序:
#include
main()
{
printf("hello, world\n");
}
用cc编译以后长度为46176字节,用strip后变为了30648,足足减小了
1/3,而且仍然可以正常执行。除了用strip外,用共享库也是减小执行
文件长度的方法,这方面的资料等我整理出来再介绍给大家。 [/color:34964f973e]
| noah007 回复于:2003-11-09 10:08:39
|
周末到了,sdccf兄狂灌帖子,哪来的这么多好东东啊。
建议作个合集。
|
| 纳兰婷 回复于:2003-11-09 15:31:52
|
也不知道从那搞到的!给个网址好吗?
|
| hasjing 回复于:2003-11-10 11:06:30
|
好东西!UPing…………嘿咻 嘿……
|
| xzh2002 回复于:2003-11-10 12:59:21
|
可我试验了几个:
strip 了几个/usr/bin下面的文件,看了一下文件都没有减小
是不是UNIX的许多系统文件都被strip过了?
|
| sdccf 回复于:2003-11-10 13:26:57
|
不错,如果文件大小没有减小,那就是已经strip过了.
|
| xzh2002 回复于:2003-11-10 13:53:06
|
我想出了一个更节省空间的办法,那就是对于单个比较大的可执行文件可以编写一个zexec脚本.下面的脚本只是针对/usr/bin/cc的,请帮忙改成通用的,谢谢!
uncompress ./cc.Z
mv cc /tmp
cd /tmp
./cc
|
| admirer 回复于:2003-11-10 14:33:29
|
cc 编译时加上"-s"参数,具有同样的作用。
|
原文转自:http://www.ltesting.net