STRIP(1)

名称
strip - オブジェクトファイルからシンボルの削除

書式
strip [-F bfdname |--target=bfdname]
      [-I bfdname |--input-target=bfdname]
      [-O bfdname |--output-target=bfdname]
      [-s|--strip-all]
      [-S|-g|-d|--strip-debug]
      [-K symbolname |--keep-symbol=symbolname]
      [-N symbolname |--strip-symbol=symbolname]
      [-w|--wildcard]
      [-x|--discard-all] [-X |--discard-locals]
      [-R sectionname |--remove-section=sectionname]
      [-o file] [-p|--preserve-dates]
      [--only-keep-debug]
      [-v |--verbose] [-V|--version]
      [--help] [--info]
      objfile...

解説
GNU strip はオブジェクトファイル objfile からシンボルをすべて削除します。 オブジェクトファイルのリストにアーカイブが含まれていても構いません。 少なくともひとつのオブジェクトファイルが必要です。

strip は変更されたコピーを別名で作成せず、 引数で指定したファイルそのものを変更します。

オプション

-F bfdname
--target=bfdname
    オリジナルの objfile を bfdname オブジェクトコード形式のファイルとして扱い、 それと同じ形式で上書きします。

--help
    strip のオプションの一覧を表示して終了します。

--info
    利用可能なアーキテクチャとオブジェクト形式のすべての一覧を 表示します。

-I bfdname
--input-target=bfdname
    オリジナルの objfile を bfdname オブジェクトコード形式のファイルとして扱います。

-O bfdname
--output-target=bfdname
    objfile を bfdname 出力形式のファイルに置き換えます。

-R sectionname
--remove-section=sectionname
    出力ファイルから sectionname という名前のセクションを削除します。 このオプションは 1 回以上使うことができます。 このオプションを不適切に使用すると、オブジェクトファイルが 使用できなくなるかもしれないことに注意してください。

-s
--strip-all
    すべてのシンボルを削除します。

-g
-S
-d
--strip-debug
    デバッギングシンボルだけを削除します。

--strip-unneeded
    再配置処理に不必要なシンボルをすべて削除します。

-K symbolname
--keep-symbol=symbolname
    元ファイルのシンボル symbolname だけを保持します。 このオプションは 1 回以上使うことができます。

-N symbolname
--strip-symbol=symbolname
    元ファイルからシンボル symbolname を削除します。 このオプションは 1 回以上使うことができ、また -K 以外の strip のオプションと併用することができます。

-o file
    存在するファイルを置き換える代わりに、 strip された出力を file に出します。 この引数を使用する時には、objfile 引数は 1 つしか指定できません。

-p
--preserve-dates
    ファイルのアクセス時刻と更新時刻を保存します。

-w
--wildcard
    他のコマンド行オプションで使用される symbolnames において、 正規表現の使用を許可します。 疑問符 (?)、アスタリスク (*)、バックスラッシュ (\)、 角括弧 ([]) の演算子をシンボル名のどこでも使用できます。 シンボル名の最初の文字が感嘆符 (!) である場合、そのシンボルに 対するスイッチの意味が反転します。 例えば、次の

              -w -K !foo -K fo*

    では、文字 ``fo'' で始まるシンボルだけを保持し、 シンボル ``foo'' は破棄することになります。

-x
--discard-all
    グローバルでないシンボルを削除します。

-X
--discard-locals
    コンパイラによって生成されたローカルシンボル (これは通常 L か . で始まります。) を削除します。

--only-keep-debug
    ファイルから削除する際に、--strip-debug により削除されるものは すべて除去しつつ、デバッグ用セクションは残します。

    このオプションの意図は、--add-gnu-debuglink と一緒に使い、 2 パートの実行可能形式を生成することにあります。 第一に、削除済みのバイナリの占める RAM 容量が より少なくなること。 第二に、デバッグ機能が必要な場合のみ デバッグ情報ファイルが必要となることです。 これらのファイルを生成するに際し、推奨する手順は次の通りです。

    1.<実行可能形式を普通通りリンクする。この名前を>
        "foo" とする。

    1.<"objcopy --only-keep-debug foo foo.dbg" を実行し>
        デバッグ情報を含むファイルを生成する。

    1.<"objcopy --strip-debug foo" を実行し>
        ストリップされた実行可能形式を生成する。

    1.<"objcopy --add-gnu-debuglink=foo.dbg foo"を実行し>
        ストリップされた実行可能形式に、デバッグ情報へのリンクを追加する。

    注意 - デバッグ情報ファイルの拡張子を選ぶ際に ".dbg" を 使うことは任意です。 "--only-keep-debug" のステップも 省略可能です。代わりに次のようにすることができます。

    1.<通常通り実行可能形式をリンクする>
    1.<"foo" を "foo.full"にコピーする>
    1.<"strip --strip-debug foo"を実行する>
    1.<"objcopy --add-gnu-debuglink=foo.full foo

    ここで、--add-gnu-debuglink により指し示されたファイルは 完全実行可能形式です。 これは、--only-keep-debug スイッチにより生成される 必要はありません。

-V
--version
    strip のバージョンを表示して終了します。

-v
--verbose
    冗長な出力: 変更されたすべてのオブジェクトファイルを列挙します。 アーカイブの場合、 strip -v はアーカイブのすべてのメンバを列挙します。

関連項目
Info の binutils エントリ。

COPYRIGHT
Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''.