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以外の値で終了します。
