歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux strip命令詳解

Linux strip命令詳解

日期:2017/2/27 15:57:22   编辑:Linux教程
strip命令通過除去綁定程序和符號調試程序使用的信息,減少擴展公共對象文件格式(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 出錯。

示例
[root@linuxeye ~]# ll /usr/local/tengine/sbin/nginx
-rwxr-xr-x 1 root root 5991818 Jan 10 22:37 /usr/local/tengine/sbin/nginx
[root@linuxeye ~]# strip /usr/local/tengine/sbin/nginx
[root@linuxeye ~]# ll /usr/local/tengine/sbin/nginx
-rwxr-xr-x 1 root root 773008 Jan 18 22:04 /usr/local/tengine/sbin/nginx
Copyright © Linux教程網 All Rights Reserved