通過除去綁定程序和符號調試程序使用的信息,減少擴展公共對象文件格式(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 命令除去行號信息、重定位信息、符號表、調試段、typchk 段和注釋段。
標志
| -e | 在對象文件的可選頭中設置 F_LOADONLY 標志。如果對象文件放置在歸檔中,則該標志告知綁定程序(ld命令),在與此歸檔鏈接時應忽略該對象文件中的符號。 |
| -E | 復位(關閉)對象文件的可選頭中的 F_LOADONLY 位。(請參閱 -e 標志。) |
| -H | 除去對象文件頭、任何可選的頭以及所有段的頭部分。
注: 不除去符號表信息。 |
| -l | (小寫 L)從對象文件中除去行號信息。 |
退出狀態
該命令返回以下退出值:
| 0 | 成功完成。 |
| >0 | 出錯。 |
示例
- 要除去 a.out 文件中的符號表和行號信息,請輸入:
strip a.out
- 要除去 a.out 文件中的對象文件頭,請輸入:
strip -H a.out
- 要除去 lib.a 中的 32 位和 64 位符號表,請輸入:
strip -X 32-64 lib.a
==================================================================================
UNIX下執行文件的減肥工具 strip
-
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
