tail head cat sleep
QR code linking to this page

manページ  — STRIP

名称

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 オリジナルの objfilebfdname オブジェクトコード形式のファイルとして扱い、 それと同じ形式で上書きします。
--help strip のオプションの一覧を表示して終了します。
--info 利用可能なアーキテクチャとオブジェクト形式のすべての一覧を 表示します。
-I bfdname
--input-target=bfdname オリジナルの objfilebfdname オブジェクトコード形式のファイルとして扱います。
-O bfdname
--output-target=bfdname objfilebfdname 出力形式のファイルに置き換えます。
-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 において、 正規表現の使用を許可します。 疑問符 (?)、アスタリスク (*)、バックスラッシュ (\)、 角括弧 ([]) の演算子をシンボル名のどこでも使用できます。 シンボル名の最初の文字が感嘆符 (!) である場合、そのシンボルに 対するスイッチの意味が反転します。 例えば、次の

amp;          -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.<実行可能形式を普通通りリンクする。この名前を> amp;foo とする。
1.<objcopy --only-keep-debug foo foo.dbg を実行し> デバッグ情報を含むファイルを生成する。
1.<objcopy --strip-debug foo を実行し> ストリップされた実行可能形式を生成する。
1.<objcopy --add-gnu-debuglink=foo.dbg foo を実行し> ストリップされた実行可能形式に、デバッグ情報へのリンクを追加する。

注意 - デバッグ情報ファイルの拡張子を選ぶ際に .dbg を 使うことは任意です。 amp;--only-keep-debug のステップも 省略可能です。代わりに次のようにすることができます。
1.<通常通り実行可能形式をリンクする>
1.<foofoo.full にコピーする>
1.<strip --strip-debug foo を実行する>
1.<objcopy --add-gnu-debuglink=foo.full foo を実行する>

ここで、--add-gnu-debuglink により指し示されたファイルは 完全実行可能形式です。 これは、amp;--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''.


2004-04-09 STRIP (1) binutils-2.14.91

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

C isn't that hard: void (*(*f[])())() defines f as an array of unspecified size, of pointers to functions that return pointers to functions that return void