ar(1) | GNU Development Tools | ar(1) |
ar - 書庫の作成、変更、および書庫からのファイルの取出しを行う
ar [-]{dmpqrtx}[abcilosSuvV] [membername] archive files...
GNU arプログラムは書庫 ( archive ) ファイルの作成、変更、および書庫からのファイルの取出しを行う。書庫は いくつかのファイルを集めて一つのファイルにしたもので、内部からオリジ ナルのファイルそれぞれを復元することができるようになっている。内部に含 まれるファイルを書庫の メンバー と呼ぶ。
オリジナルのファイルの内容、モード (許可属性)、タイムスタンプ、オーナー およびグループも書庫に保存され、取出しの際に再設定することができる。
GNU ar では、書庫に含まれるメンバーの名前の長さに制限はない。ただし ar のインストール時の設定によっては、制限が付いている場合があるかもしれな い (他のツールで扱える書庫フォーマットとの互換性のためであることが多い)。 制限がある場合には、 15 文字 (a.out 関連フォーマット) または 16 文字 (coff 関連フォーマット) であることが多い。
ar はバイナリーユーティリティ (binary utility) とされている。 なぜならこの種の書庫は汎用のサブルーチンをまとめた ライブラリ として用いられることが多いからである。
ar は、書庫に入っているリロケータブルなオブジェクトモジュールに含まれるシ ンボルの索引 (index) を作成することができる。これは修正子 (modifier) `s' が指定されたときの動作である。一度作成されると、この索引は ar によって書庫の内容が変更されるたびに更新される (ただし `q' によっ て書庫が更新された場合を除く)。このような索引を持った書庫では、ライブ ラリとしてリンクされる場合の速度が向上する。またライブラリの内部に含まれる ルーチンが、書庫内部での位置によらずお互いを呼び出すことができるように なる。
`nm -s' または `nm --print-armap' とすればこの索引をリ ストすることができる。書庫に索引がない場合は、 ar の別名である ranlib を用いて索引を追加することもできる。
ar の実行には最低 2 つの引数が必要である。一つは ar の動作 (operation) を指定する一文字の英字 (動作指定子 :keyletter) であ り (他の英字が修正子として付随することもある)、もう一つは実際に操作の 対象となる書庫の名前である。
ほとんどの動作では動作対象とするファイルを files 引数として与えることもできる。
GNU arでは動作指定子 p と修正子 mod の順番は任意であるが、これらはまとめて最初のコマンドライン引数に与える 必要がある。
最初のコマンドライン引数の先頭にダッシュ (-) を加えてもかまわない。
動作指定子 p では実行する動作を指定する。これには以下のどれかを指定する。複数指定す ることはできない。
修正子として v を指定すると、 ar は削除したモジュールをそれぞれ表示する。
一つのシンボルが書庫内部の複数のメンバーによって定義されている場合、メ ンバーの配置の順番が異なると、このライブラリへのリンクのされ方が予想と は異なる可能性がある。
修正子による指定がなければ、 m による操作では files 引数によって指定されたメンバーを書庫の最後尾に移動する。移動先を 修正子 `a'、 `b'、 i によって指定することもできる。
files を指定しないと、書庫の内部のすべてのファイルが表示される。
修正子 a、b、i はこの操作には影響しない。新しいメンバーは常に書庫の最後に配置される。
修正子 vをつけるとar は追加する際にそれぞれのファイルを表示する。
この操作のミソは速度なので、書庫のシンボルテーブルは更新されない (存在 していても更新されない)。シンボルテーブルを明示的に更新させるには ar s または ranlib を用いればよい。
しかし、 quick append の際に index が再構築されるとみなしている システムがあまりにも多いので、 GNU ar の実装では q を r と同義としている。
files のリストの中に存在しないファイルがあった場合 ar はエラーを表示する。そしてそのメンバーに関しては古いものを書庫にそのま ま残し、変更を行なわない。
デフォルトでは新たなメンバーはファイルの最後に追加される。 修正子 a、 b、 i を使えば、現在存在しているメンバー からの相対位置として、新たなファイルを追加する位置を指定することができ る。
この操作で修正子 v を用いると、挿入されるファイルを一行ずつ表示する。またこのとき a または r の文字を表示する。これはそれぞれファイルが追加 (append) された (つまり書庫には削除すべき古いメンバーが存在しなかった) か、置換 (replace) されたかに対応する。
files を指定しなければ、書庫にあるすべてのファイルがリストされる。
同じ名前のファイル (仮に fie とする) が書庫 (b.a とする) に二つ以上存在する場合には、 `ar t b.a fie' では最初のものしか表 示しない。すべての fie を表示させたい場合には、書庫のファイル全てを表示させるように実行しなけ ればならない (この例ならば `ar t b.a' となる)。
files を何も指定しないと、書庫のすべてのファイルが取り出される。
いくつかの修正子 ( mod ) を動作指定子 p に続けて指定することができる。 これによって動作を調整することができる。
info の ` binutils ' エントリ、 The GNU Binary Utilities, Roland H. Pesch (October 1991)、 nm(1)、 ranlib(1)
Copyright (c) 1991 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.
5 November 1991 | cygnus support |