strip コマンド

目的

バインダーおよびシンボリック・デバッグ・プログラムによって使用される情報を除去することによって、拡張共通オブジェクト・ファイル形式 (XCOFF) のオブジェクト・ファイルのサイズを縮小します。

構文

strip [ -V] [  -r -l ] |  -x -l ] |  -t -H -e -E ] [  -X  {32|64|32_64}]— ]  File ...

説明

strip コマンドは、XCOFF オブジェクト・ファイルのサイズを縮小します。 strip コマンドは、行番号情報、再配置情報、デバッグ・セクション、typchk セクション、ファイル・ヘッダー、およびシンボル・テーブルの一部または全部を、XCOFF オブジェクト・ファイルから任意に除去します。 一度このコマンドを使用すると、ファイルのシンボリック・デバッグは困難になります。 したがって、通常は 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 ビットのオブジェクトは無視) します。 また、modeOBJECT_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 コマンドが入っています。