strip 命令的用法
原文鏈接
通過除去綁定程序和符號(hào)調(diào)試程序使用的信息,減少擴(kuò)展公共對(duì)象文件格式(XCOFF)的對(duì)象文件的大小。
語(yǔ)法
strip[-V] [-r[-l] |-x[-l] |-t|-H|-e|-E] [-X{32|64|32_64}][--]File...
描述
strip命令減少 XCOFF 對(duì)象文件的大小。strip命令從 XCOFF 對(duì)象文件中有選擇地除去行號(hào)信息、重定位信息、調(diào)試段、typchk 段、注釋段、文件頭以及所有或部分符號(hào)表。 一旦您使用該命令,則很難調(diào)試文件的符號(hào);因此,通常應(yīng)該只在已經(jīng)調(diào)試和測(cè)試過的生成模塊上使用strip命令。使用strip命令減少對(duì)象文件所需的存儲(chǔ)量開銷。
對(duì)于每個(gè)對(duì)象模塊,strip命令除去給出的選項(xiàng)所指定的信息。對(duì)于每個(gè)歸檔文件,strip命令從歸檔中除去全局符號(hào)表。
可以使用ar -s命令將除去的符號(hào)表恢復(fù)到歸檔文件或庫(kù)文件中。
沒有選項(xiàng)的strip命令除去行號(hào)信息、重定位信息、符號(hào)表、調(diào)試段、typchk 段和注釋段。
標(biāo)志
| -e | 在對(duì)象文件的可選頭中設(shè)置F_LOADONLY標(biāo)志。如果對(duì)象文件放置在歸檔中,則該標(biāo)志告知綁定程序(ld命令),在與此歸檔鏈接時(shí)應(yīng)忽略該對(duì)象文件中的符號(hào)。 |
| -E | 復(fù)位(關(guān)閉)對(duì)象文件的可選頭中的F_LOADONLY位。(請(qǐng)參閱-e標(biāo)志。) |
| -H | 除去對(duì)象文件頭、任何可選的頭以及所有段的頭部分。
|
| -l | (小寫 L)從對(duì)象文件中除去行號(hào)信息。 |
| -r | 除了外部符號(hào)和靜態(tài)符號(hào)條目,將全部符號(hào)表信息除去。不除去重定位信息。同時(shí)除去調(diào)試段和 typchk 段。這個(gè)選項(xiàng)產(chǎn)生一個(gè)對(duì)象文件,該對(duì)象文件仍可以用作輸入到鏈接編輯器(ld命令)中。 |
| -t | 除去大多數(shù)符號(hào)表信息,但并不除去函數(shù)符號(hào)或行號(hào)信息。 |
| -V | 打印strip命令的版本號(hào)。 |
| -x | 除去符號(hào)表信息,但并不除去靜態(tài)或外部符號(hào)信息。-x標(biāo)志同時(shí)除去重定位信息,因此將不可能鏈接到該文件。 |
| -Xmode | 指定應(yīng)檢查strip的對(duì)象文件的類型。mode必須是下列之一:32只處理 32 位對(duì)象文件64只處理 64 位對(duì)象文件32_64既處理 32 位對(duì)象文件,又處理 64 位對(duì)象文件
缺省值是處理 32 位對(duì)象文件(忽略 64 位對(duì)象文件)。也可以用OBJECT_MODE環(huán)境變量來設(shè)置mode。例如,OBJECT_MODE=64使strip處理任何 64 位對(duì)象文件,并忽略 32 位對(duì)象文件。-X標(biāo)志重設(shè)OBJECT_MODE變量。 |
| -- | (雙連字符)將跟隨在該標(biāo)志后的所有參數(shù)解釋為文件名。這就允許除去名稱是以連字符開始的文件。 |
退出狀態(tài)
該命令返回以下退出值:
| 0 | 成功完成。 |
| >0 | 出錯(cuò)。 |
示例
要除去a.out文件中的符號(hào)表和行號(hào)信息,請(qǐng)輸入:
strip a.out
要除去a.out文件中的對(duì)象文件頭,請(qǐng)輸入:
strip -H a.out
要除去lib.a中的 32 位和 64 位符號(hào)表,請(qǐng)輸入:
strip -X 32-64 lib.a
==================================================================================
UNIX下執(zhí)行文件的減肥工具 strip
-
UNIX下文件壓縮命令compress大家都比較熟悉了,它的壓縮率比較高, 和tar命令結(jié)合使用來做數(shù)據(jù)備份是最合適不過了。但compress壓縮也有缺點(diǎn),就是被壓縮后的文件需要用命令uncompress解壓后才能正常使用。而用strip命令就沒有這個(gè)問題,它能清除執(zhí)行文件中不必要的標(biāo)示符及調(diào)試信息,可減小文件大小而不影響正常使用。但與compress 不同的是,文件一旦strip后就不能恢復(fù)原樣了,所以strip是一個(gè)減肥工具而不是壓縮工具。而且,被strip后的文件不包含調(diào)試信息,就不能用 dbx來調(diào)試程序了。現(xiàn)在讓我們來具體效果如何,看下面一個(gè)程序:
#include
main()
{
printf("hello, world/n");
}
用cc編譯以后長(zhǎng)度為46176字節(jié),用strip后變?yōu)榱?30648,足足減小了 1/3,而且仍然可以正常執(zhí)行。除了用strip外,用共享庫(kù)也是減小執(zhí)行文件長(zhǎng)度的方法。
注:
1.如果文件大小沒有減小,那就是已經(jīng)strip過了.
2.cc 編譯時(shí)加上"-s"參數(shù),具有同樣的作用。
某種節(jié)約空間的辦法:
那就是對(duì)于單個(gè)比較大的可執(zhí)行文件可以編寫一個(gè)zexec腳本.下面的腳本只是針對(duì)/usr/bin/cc的
uncompress ./cc.Z
mv cc /tmp
cd /tmp
./cc
總結(jié)
以上是生活随笔為你收集整理的strip 命令的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java8新特性之Stream
- 下一篇: 大蓟的功效和作用大蓟怎么吃