llvm-ar - LLVM アーカイバ¶
概要¶
llvm-ar [-]{dmpqrstx}[abcDilLNoOPsSTuUvV] [relpos] [count] archive [files…]
説明¶
llvm-arコマンドは、一般的なUnixユーティリティであるarコマンドに似ています。オブジェクトファイルやLLVMビットコードファイルなど、複数のファイルを単一のアーカイブライブラリにアーカイブし、プログラムにリンクすることができます。ただし、アーカイブにはあらゆる種類のファイルを含めることができます。llvm-arは、デフォルトでシンボルテーブルを生成します。これにより、個々のアーカイブメンバーファイルを参照する必要がなく、シンボルテーブルのみを参照すればよいため、リンク速度が向上します。
llvm-arコマンドは、SVR4、GNU、BSD、Big Archive、Darwin形式のアーカイブファイルの読み込み、およびGNU、BSD、Big Archive、Darwin形式のアーカイブファイルの書き込みに使用できます。 r
(置換)、d
(削除)、m
(移動)、またはq
(クイックアップデート)操作でSVR4形式のアーカイブを使用する場合、アーカイブは--format
で定義された形式で再構築されます。
ここでllvm-arは以前のar実装とは異なります。
次のオプションはサポートされていません。
[f] - 挿入されたファイル名を切り捨てる
互換性のために次のオプションは無視されます。
--plugin=<string> - その他のファイル形式のサポートを追加するプラグインをロードする
[l] - arで無視されます。
シンボルテーブル
llvm-arはビットコードファイルをサポートしているため、作成されるシンボルテーブルには、ネイティブシンボルとビットコードシンボルの両方が含まれます。
決定論的アーカイブ
Windowsパス
Windowsでは、llvm-arは、アーカイブされたファイルの名前を、オペレーティングシステムと同じ大文字小文字を区別する方式で扱います。Windows以外のマシンでは、llvm-arは大文字小文字を区別しません。
オプション¶
llvm-ar操作は、他のar実装と互換性があります。ただし、他のar実装にはない修飾子(L
)がいくつかあります。llvm-arのオプションは、アーカイブに対して実行する1つの基本的な操作、その操作に対するさまざまな修飾子、アーカイブファイルの名前、およびオプションのファイル名のリストを指定します。filesオプションが指定されていない場合、操作に応じて一般的に「なし」または「すべて」のメンバーを意味します。オプション、操作、および修飾子は、以下のセクションで説明されています。
最小限のオプションセットは、少なくとも1つの演算子とアーカイブの名前です。
操作¶
- d [NT]¶
archive
からファイルを削除します。N
およびT
修飾子がこの操作に適用されます。filesオプションは、アーカイブから削除するメンバーを指定します。指定されたファイルがアーカイブに存在しない場合もエラーになりません。filesが指定されていない場合、アーカイブは変更されません。
- m [abi]¶
archive
内の場所から別の場所にファイルを移動します。a
、b
、およびi
修飾子がこの操作に適用されます。filesはすべて、修飾子によって指定された場所に移動されます。修飾子が使用されていない場合、ファイルはアーカイブの最後に移動されます。filesが指定されていない場合、アーカイブは変更されません。
- p [v]¶
filesを標準出力ストリームに出力します。filesが指定されていない場合、
archive
全体が出力されます。v
修飾子を使用すると、llvm-arは出力されるファイルの名前も出力します。バイナリファイルを出力することはお勧めしません。ターミナルの設定が混乱する可能性があります。p
操作は、アーカイブを変更することはありません。
- q [LT]¶
重複を削除せずに、
archive
の最後にファイルをすばやく追加します。filesが指定されていない場合、アーカイブは変更されません。1つのアーカイブを別のアーカイブに追加する場合の動作は、L
およびT
修飾子が使用されているかどうかに依存します。
- r [abTu]¶
既存のfilesを置換するか、存在しない場合は
archive
の最後に挿入します。a
、b
、T
、およびu
修飾子がこの操作に適用されます。filesが指定されていない場合、アーカイブは変更されません。
t[v] .. option:: t [vO]
修飾子(操作固有)¶
以下の修飾子は、特定の操作に固有です。どの修飾子がどの操作に適用可能かは、「操作」セクションを参照してください。
- a¶
メンバーファイルの挿入または移動時に、このオプションは新規ファイルの宛先をrelposメンバーの後であることを指定します。relposが見つからない場合、ファイルは
archive
の末尾に配置されます。relposは、a
、b
、またはi
のいずれかがないと使用できません。
- b¶
メンバーファイルの挿入または移動時に、このオプションは新規ファイルの宛先をrelposメンバーの前であることを指定します。relposが見つからない場合、ファイルは
archive
の末尾に配置されます。relposは、a
、b
、またはi
のいずれかがないと使用できません。この修飾子はi
修飾子と同一です。
- L¶
archive
を高速追加する際に、そのメンバーを高速追加する代わりに使用します。これは、gnu-arにはないllvm-arの機能です。
- N¶
別のメンバーと名前が同じメンバーを抽出または削除する際、countパラメータを使用すると、正の整数を指定して、指定した名前のインスタンスを選択できます。「1」は最初のインスタンスを示します。
N
が指定されていない場合、その名前の最初のメンバーが選択されます。countが指定されていない場合、操作は失敗します。*count*は…
- o¶
ファイルを抽出する際に、
archive
に表示されているとおりに、任意のfilesの変更時刻を使用します。デフォルトでは、アーカイブから抽出されたfilesは抽出時刻を使用します。
- O¶
アーカイブ内のメンバーオフセットを表示します。
- T¶
--thin
のエイリアスです。多くのar実装では、X/Openシステムインターフェースで指定されているように、T
は異なる意味を持ちます。
- v¶
filesまたは
archive
の目次を出力する際に、この修飾子はllvm-arに追加情報を表示するように指示します。
修飾子(汎用)¶
以下の修飾子は、任意の操作に適用できます。
- c¶
r
(置換)およびq
(高速更新)操作の場合、llvm-arは存在しない場合常にアーカイブを作成します。通常、llvm-arはarchive
が作成されていることを示す警告メッセージを出力します。この修飾子を使用すると、その警告が無効になります。
- D¶
タイムスタンプとUID/GIDにゼロを使用します。これはデフォルトで設定されています。
- P¶
ファイル名だけでなく、完全パスを使用してメンバー名に一致させます。これは、他のアーカイバによって生成された
archive
を操作する場合に役立ちます。一部のアーカイバでは、パスをメンバー名として許可しているためです。これは、シンアーカイブのデフォルトの動作です。
- s¶
この修飾子は、ranlibを使用した場合と同様に、アーカイブインデックス(またはシンボルテーブル)を
archive
に追加することを要求します。シンボルテーブルには、アーカイブ内のすべてのビットコードファイルによって定義されている、外部から見えるすべての関数とグローバル変数が含まれます。llvm-arはデフォルトでアーカイブにシンボルテーブルを生成します。これは操作としても使用できます。
- u¶
より新しいタイムスタンプを持つfilesのみを
archive
メンバーを更新します。
- U¶
実際のタイムスタンプとUID/GIDを使用します。
その他¶
- --format=<type>¶
このオプションでは、デフォルト、gnu、darwin、bsd、またはcoffの
<type>
を選択できます。デフォルトの<type>
でarchive
を作成する場合、:program:llvm-ar
は入力ファイルからそれを推測しようと試み、実行できない場合はデフォルトのツールチェーントンネルターゲットにフォールバックします。
- -h, --help¶
コマンドラインオプションとその意味のサマリーを出力します。
- -M¶
このオプションを使用すると、標準入力ストリームを介してMRIスクリプトを読み取ることができます。このオプションとは互換性のない他のオプションはありません。
- --output=<dir>¶
アーカイブメンバーを抽出するディレクトリを指定します。デフォルトでは、現在の作業ディレクトリが使用されます。
- --rsp-quoting=<type>¶
- この オプションは、応答ファイルの引用スタイル``<type>``を選択します。 ``posix``または``windows``のいずれかです。、 either¶
- ``posix`` または``windows``です。 Windowsではデフォルトは``windows``、、 otherwise は¶
- default は``posix``です。¶
- --thin¶
アーカイブの作成または変更時に、このオプションは
archive
がシンであることを指定します。デフォルトでは、アーカイブはシンアーカイブとして作成されず、シンアーカイブを変更すると、通常のアーカイブに変換されます。
- --version¶
llvm-ar実行ファイルのバージョンを表示します。
- -X mode¶
処理するオブジェクトファイルの種類を指定します。llvm-arは、以下のいずれかのモードで動作します。
- 32
32ビットオブジェクトファイルのみを処理します。
- 64
64ビットオブジェクトファイルのみを処理します。
- 32_64
32ビットおよび64ビットオブジェクトファイルの両方を処理します。
- any
全てのオブジェクトファイルを処理します。
デフォルトでは、32ビットオブジェクトファイルを処理し(64ビットオブジェクトは無視します)、OBJECT_MODE環境変数でも設定できます。例えば、OBJECT_MODE=64と設定すると、arは64ビットオブジェクトを処理し、32ビットオブジェクトは無視します。-XフラグはOBJECT_MODE変数を上書きします。
- @<FILE>¶
レスポンスファイル
<FILE>
からコマンドラインオプションとコマンドを読み込みます。
MRIスクリプト¶
llvm-arは、arの伝統に従うアーカイバで一般的にサポートされているMRIスクリプトインタフェースの一部を理解します。MRIスクリプトには、アーカイバによって実行される一連のコマンドが含まれています。-M
オプションを使用すると、標準入力ストリームを介してllvm-arにMRIスクリプトを渡すことができます。
注意:llvm-arには、MRIスクリプトの使用に関する既知の制限事項があります。
各スクリプトは、1つのアーカイブしか作成できません。
既存のアーカイブは変更できません。
MRIスクリプトコマンド¶
各コマンドはコマンド名で始まり、それぞれ独自の行に記述する必要があります。一部のコマンドには引数があり、名前と空白で区切る必要があります。MRIスクリプトは、CREATE
またはCREATETHIN
コマンドで始まり、通常はSAVE
コマンドで終わります。'*'または';'の後のテキストはコメントとして扱われます。
- CREATE archive¶
指定された名前で通常のアーカイブの作成を開始します。後続のコマンドはこの
archive
に対して作用します。
- CREATETHIN archive¶
指定された名前でシンアーカイブの作成を開始します。後続のコマンドはこの
archive
に対して作用します。
- ADDLIB archive¶
archive
の内容を現在のアーカイブに追加します。
- ADDMOD <file>¶
<file>
を現在のアーカイブに追加します。
- DELETE <file>¶
ディレクトリコンポーネントを除いたファイル名が
<file>
と一致する、現在のアーカイブのメンバを削除します。
- SAVE¶
前の
CREATE
/CREATETHIN
コマンドで指定されたパスに現在のアーカイブを書き込みます。
- END¶
MRIスクリプトを終了します(オプション)。
終了ステータス¶
llvm-arが成功すると、0で終了します。エラーが発生すると、0以外の値で終了します。