strip命令用法

來源:互聯網
上載者:User
用途

通過除去綁定程式和符號偵錯工具使用的資訊,減少擴充公用對象檔案格式(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)從對象檔案中除去行號資訊。

 

-r 除了外部符號和靜態符號條目,將全部符號表資訊除去。不除去重定位資訊。同時除去調試段和 typchk 段。這個選項產生一個對象檔案,該對象檔案仍可以用作輸入到連結編輯器(ld 命令)中。
-t 除去大多數符號表資訊,但並不除去函數符號或行號資訊。
-V 列印 strip 命令的版本號碼。
-x 除去符號表資訊,但並不除去靜態或外部符號資訊。 -x 標誌同時除去重定位資訊,因此將不可能連結到該檔案。
-X mode 指定應檢查 strip 的對象檔案的類型。 mode 必須是下列之一:

32
只處理 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 命令。

 

 

 

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.