Section Next |Prev


2.4 ar(1) - ライブラリの作成および操作

【機能説明】
ライブラリファイルを作ることで、複数のオブジェクトファイルを 1つのファイルにまとめあげる事が出来ます。 ライブラリには2種類の方式があり、「静的なリンク」というメカニズムを用いた アーカイブと、「動的なリンク」に用いられるシェーアードオブジェクト (またはシェアードライブラリ)があります。 一般にアーカイブは .a で終わるファイル名、シェーアードオブジェクトは .so で終わるファイル名にします。

【入力フォーマット】
ar キー[オプション] アーカイブ名 [登録するファイル名..]

【主なオプション】
ar はキーとよばれる特殊なオプションがあり、以下のいずれかを必ず 1 つ最初に指定します。
-r
既存するアーカイブの内容を更新する。
アーカイブがない場合は新規作成も行う。
-d
アーカイブに登録されているファイルの削除を行なう。
-t
アーカイブに登録されているファイルを表示します。
-x
アーカイブに登録されているファイルを出力します。
さらに続く一般的なオプションは以下の通りです。
c
新しくアーカイブ・ファイルを作成します。
a
指定したファイルをアーカイブ・ファイルの最後に追加登録します。
v
処理中に詳細なメッセージを表示します。
【実行例】
新規作成。 アーカイブの内容表示を行ないます。 アーカイブ中の test.o を更新します。
	$ ar rv libtest.a test.o func0.o func1.o
	a - test.o
	a - func0.o
	a - func1.o
	ar: Warning: creating libtest.a

	$ ar tv libtest.a
	---------    0/0        90 Jul 24 14:35 1997   ________64ELEL_
	rw-r----- 4071/0      1184 Jul 24 14:35 1997   test.o
	rw-r----- 4071/0      1192 Jul 24 14:35 1997   func0.o
	rw-r----- 4071/0      1352 Jul 24 14:35 1997   func1.o

	$ cc -c test.c
	$ ar rv libtest.a test.o
	r - test.o

ranlib(1) - ライブラリのランダムアクセス

【機能説明】
コマンド ranlib は個々のアーカイブに格納されたファイルをランダム・アクセス できるように変換します。
現在の Digital UNIX では、ダイナミック・リンク(実行時に必要に応じて、随時 リンクを行う)ため、あまり必要ではありません。

【入力フォーマット】
ranlib アーカイブファイル名

【実行例】
アーカイブ・ファイルは cc 、 ld コマンドの入力ファイルとして指定できます。
	$ cc prog.c testlib.a
	$ ld /lib/crt0.o prog.o tesetlib.a -lc
リンク時アーカイブはそこに格納されているモジュール(オブジェクト・ファイル) を順検索するため、先の testlib.a で func0.o が test.o を参照していたりすれ ばエラーが発生する場合があります。
そのため、ここのモジュールをランダム・アクセスできるよう ranlib で変換します。
	$ ranlib libtest.a

Section Next |Prev

Copyright ycosSystems 2007, prgBasic/Body24.html