IARアーカイブツール — iarchive
IARアーカイブツールiarchiveは、複数のELFオブジェクトファイルから1つのライブラリ(アーカイブ)を作成できます。また、iarchiveは、ELFライブラリの操作にも使用できます。
ライブラリファイルには、いくつかの再配置可能ELFオブジェクトモジュールが含まれており、それぞれ個別にリンカで使用できます。リンカに直接指定されるオブジェクトモジュールとは対照的に、ライブラリの各モジュールは、必要な場合のみ追加されます。
IDEでライブラリをビルドする方法については、『プロジェクト管理およびビルドのユーザードキュメント』を参照してください。
呼び出し構文
アーカイブビルダの呼び出し構文は以下のとおりです。
iarchive [command] [libraryfile] [objectfiles] [options]
パラメータ
パラメータを以下に示します。
パラメータ | 説明 |
|---|---|
| 実行する操作を定義するコマンドラインオプションです。 |
| 操作対象のライブラリファイルです。このように指定した場合、最初のオブジェクトファイルの前に表示されなければなりません。オプション |
| コマンドの引数としての1つまたは複数のオブジェクトファイル。コマンドの中にはオブジェクトファイル引数をとらないものもあります。 |
| アーカイブツールの動作を変更するオプションのコマンドラインオプション。これらのオプションは、コマンドラインの任意の場所に配置できます。 |
例
以下の例では、ソースオブジェクトファイルmodule1.o、module.2.o、module3.oからmylibrary.aという名前のライブラリファイルを作成します。
iarchive mylibrary.a module1.o module2.o module3.o.
以下の例では、mylibrary.aの内容がリストされます。
iarchive ‑‑toc mylibrary.a
以下の例では、ライブラリ内のmodule3.oをmodule3.oファイルの内容と置き換え、module4.oをmylibrary.aの後に追加します。
iarchive ‑‑replace mylibrary.a module3.o module4.o
iarchiveコマンドの概要
コマンドラインオプション | 説明 |
|---|---|
リストされたオブジェクトファイルを含むライブラリを作成します。 | |
リストされたオブジェクトファイルをライブラリから削除します。 | |
リストされたオブジェクトファイルをライブラリから抽出します。 | |
リストされたオブジェクトファイルにより、ライブラリでの置換または追加を行います。 | |
ライブラリ内のファイルによって定義されているシンボルをすべてリストします。 | |
ライブラリ内のファイルすべてリストします。 |
詳細については、ユーティリティオプションの説明を参照してください。
iarchiveオプションの概要
以下の表に、iarchiveのコマンドラインオプションの一覧を示します。
コマンドラインオプション | 説明 |
|---|---|
コマンドラインを拡張します。 | |
オプションで依存関係を指定して、コマンドラインを拡張します。 | |
同じタイムスタンプのライブラリファイルを生成します。 | |
UTF-8出力ファイルのバイト オーダーマークを省略します。 | |
ライブラリファイルを指定 | |
出力抑止操作を設定します。 | |
テキスト出力ファイルのエンコードを指定します。 | |
テキスト入力ファイルにUTF-8エンコードを使用します。 | |
実行されたすべての操作を報告します。 | |
ツールの出力をコンソールに送信し、終了します。 | |
ライブラリにファイルの冗長リストを作成します。 |
詳細については、ユーティリティオプションの説明を参照してください。
診断メッセージ
ここでは、iarchiveで生成されたメッセージについて説明します。
La001: could not open file filename
iarchiveがオブジェクトファイルを開くことができませんでした。
La002: illegal path pathname
パスpathnameは有効なパスではありません。
La006: too many parameters to cmd command
単一のライブラリファイルのみを指定可能なコマンドに、オブジェクトモジュールのリストがパラメータとして指定されました。
La007: too few parameters to cmd command
オブジェクトモジュールのリストを指定可能なコマンドが発行されましたが、必要なモジュールが指定されていません。
La008: lib is not a library file
ライブラリファイルが基本構文チェックをパスしませんでした。このファイルはライブラリファイルを意図したものではない可能性があります。
La009: lib has no symbol table
ライブラリファイルに必要なシンボル情報が含まれていません。ファイルがライブラリファイルを意図したものではないか、ファイルにELFオブジェクトモジュールが含まれていない可能性があります。
La010: no library parameter given
ツールが操作対象のライブラリを特定できませんでした。ライブラリファイルが指定されていない可能性があります。
La011: file file already exists
同じ名前のファイルがすでに存在するため、ファイルを作成できませんでした。
La013: file confusions, lib given as both library and object
オブジェクトモジュールのリストにライブラリファイルも記述されています。
La014: module module not present in archive lib
指定されたオブジェクトモジュールがアーカイブで見つかりませんでした。
La015: internal error
呼び出しによりiarchiveで予期しないエラーが発生しました。
Ms003: could not open file filename for writing
iarchiveが、書込み用のアーカイブファイルを開くことができませんでした。ライト禁止になっていないか確認してください。
Ms004: problem writing to file filename
ファイルfilenameへの書込み中にエラーが発生しました。ボリュームがいっぱいであることが原因と考えられます。
Ms005: problem closing file filename
ファイルfilenameを閉じているときにエラーが発生しました。