EN JA
STRIP(1)
STRIP(1) GNU Development Tools 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]
[ --keep-file-symbols]
[ --only-keep-debug]
[ -v | --verbose] [ -V| --version]
[ --help] [ --info]
objfile...

解説

GNU strip は、オブジェクトファイル objfile からすべてのシンボルを削除します。オブジェクトファイルのリストは、アーカイブを含めることができます。少なくとも 1 つのオブジェクトファイルを与えなければなりません。

strip は、異なった名前で変更されたコピーを書き込むのではなく、引数で指定されたファイルを変更します。

オプション

-F bfdname
--target= bfdname
オブジェクトコード形式 bfdname のファイルとしてオリジナルの objfile を扱い、同じ形式でそれを書き直します。
--help
strip のオプションの概要を表示して、終了します。
--info
利用可能なすべてのアーキテクチャとオブジェクト形式を示すリストを表示します。
-I bfdname
--input-target= bfdname
オブジェクトコード形式 bfdname のファイルとしてオリジナルの objfile を扱います。
-O bfdname
--output-target= bfdname
objfile を出力形式 bfdname のファイルに置き換えます。
-R sectionname
--remove-section= sectionname
出力ファイルから sectionname と名前が付けられたセクションを削除します。 2 回以上をこのオプションを与えることができます。このオプションを不適切に使用することは、出力ファイルを使用不可能にするかもしれないことに注意してください。
-s
--strip-all
すべてのシンボルを削除します。
-g
-S
-d
--strip-debug
デバッグシンボルだけを削除します。
--strip-unneeded
再配置処理に必要でないすべてのシンボルを削除します。
-K symbolname
--keep-symbol= symbolname
シンボルをストリップするとき、たとえ普通にストリップされても、シンボル symbolname を保持します。 2 回以上をこのオプションを与えることができます。
-N symbolname
--strip-symbol= symbolname
ソースファイルのシンボル symbolname を削除します。 2 回以上をこのオプションを与えることができ、 -K 以外の strip オプションと組み合わせることができます。
-o file
既存のファイルを置き換えるのではなく、ストリップされた出力を file に置きます。この引数が使用されるとき、1 つの objfile 引数だけを指定できます。
-p
--preserve-dates
ファイルのアクセスと更新時刻を保持します。
-w
--wildcard
他のコマンドラインのオプションで使用される symbolname に正規表現を使用可能にします。疑問符 (?)、アスタリスク (*)、バックスラッシュ (\) と角括弧 ([]) 演算子をシンボル名のどこにでも使用することができます。シンボル名の最初の文字が感嘆符 (!) であるなら、そのシンボルに対して、スイッチの意味を反転します。例えば:
 

-w -K !foo -K fo*
 
上記によって、strip は、文字 "fo"で始まるシンボルのみを保存しますが、シンボル "foo"を削除します。
-x
--discard-all
グローバルでないシンボルを削除します。
-X
--discard-locals
コンパイラで生成されたローカルシンボルを削除します。 (これらは、通常、 L または .. で始まります)
--keep-file-symbols
ファイルをストリップするとき、おそらく --strip-debug または --strip-unneeded と共に、指定されたソースファイル名のあらゆるシンボルを保存し、そうでなければ、ストリップします。
--only-keep-debug
ファイルをストリップします、 --strip-debug によってストリップされないすべてのセクションの内容を削除し、デバッグセクションをそのままに残します。 ELF ファイルでは、これは、出力ですべてのノート (note) セクションを保持します。
 
このオプションは、2 つの部分の実行形式を作成するために --add-gnu-debuglink と関連して使用されることを目的としています。 1 つは、RAM と配布のより少ない空間を占めるストリップされたバイナリで、 2 番目は、デバッグ能力が必要である場合にだけ必要であるデバッグ情報ファイルです。これらのファイルを作成するための推奨されている手順は、次の通りです:
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 スイッチによって作成されたファイルである必要はありません。
 
注意-このスイッチは、完全にリンクされたファイルでのみの使用を対象としています。デバッグ情報が不完全であるオブジェクトファイルで、それを使用する意味がありません。さらに、gnu_debuglink 機能は、one-per-object-file (オブジェクトファイル毎に 1 つ) ベースで複数のファイル名ではなく、デバッグ情報を含む 1 つのファイル名の存在のみをサポートします。
-V
--version
strip のバージョン番号を表示します。
-v
--verbose
冗長な出力: すべての変更されたオブジェクトファイルをリストします。アーカイブの場合では、 strip -v は、アーカイブのすべてのメンバをリストします。
@ file
file からコマンドラインのオプションを読み込みます。読み込まれたオプションは、オリジナルの @ file オプションの場所に代わって挿入されます。 file が存在しないか、または読み込むことができないなら、オプションは、文字通りに扱われ、取り除かれません。
 
file 中のオプションは、空白類によって分離されます。空白類の文字は、シングルクォートまたはダブルクォートのいずれかで全体のオプションを囲むことによって、オプションに含めることができます。 (バックスラッシュを含む) 任意の文字は、バックスラッシュを文字を前に置くことによって、含めることができます。 file は、それ自体に、追加の @ file オプションを含むことができます。そのようなオプションは、再帰的に処理されます。

関連項目

binutils の Info エントリ。

COPYRIGHT

Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 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".

2010-10-30 binutils-2.17.50