プログラミングユーティリティ

ライブラリ、メンバー、シンボル

オブジェクトライブラリは、ar ライブラリアーカイブ に含まれている複数のオブジェクトファイルの集まりです (ライブラリアーカイブファイルについての詳細は、ar(1) および lorder(1) のマニュアルページを参照してください)。多くの言語では、C のライブラリにあるような汎用ユーティリティのコンパイル済み関数をオブジェクトライブラリとして保存します。

ar は、1 つまたは複数のファイルを読み込んでライブラリを作成します。ライブラリに含める各メンバーには、ヘッダーと 1 つのファイルのテキストが含まれます。メンバーのヘッダーには、ファイルディレクトリのエントリから取得した、変更時間などの情報が含まれます。これによって、make は依存関係の検査で、ライブラリのメンバーを独立した別々の構成要素として扱うことができます。

オブジェクトライブラリの関数を使用するプログラムを (ファイル名または cc-l オプションにより適切なライブラリを指定して) コンパイルすると、リンカーは必要なシンボルを含むライブラリのメンバーを選択してリンクします。

ar を使用して、オブジェクトファイルのライブラリ用のシンボルテーブルを生成できます。ld がライブラリ内のシンボルへアクセスできるように、つまり関数が定義されたオブジェクトファイルを ld が検出してリンクできるようにするには、このシンボルテーブルが必要です。また、先に lordertsort を使用して、メンバーを呼び出し順にライブラリ内でソートすることもできます (詳細は、ar(1) および lorder(1) を参照してください)。大規模なライブラリでは、これら両方の処理を行なってください。