スタティックライブラリを複数結合する
libA.aとlibB.aの複数のライブラリを結合して、libZ.aというライブラリを作成します
$ ar cqT libZ.a libA.a libB.a
作成されるファイル(libZ.a)はthin archive形式です。
以下の情報を保持しているだけで、この段階では実体そのものは含んでいません。
・シンボルテーブル
・元ファイルのパス
thin archive形式のファイルをarコマンドで変換する
arコマンドに "-M" オプションを付与することでarをインタプリンタモードで起動し、以下を実行します。
$ ar -M
AR >create libZ.a
AR >addlib libA.a
AR >addlib libB.a
AR >save
AR >end
libZ.aの容量も変わると思います。これで、実体を含んだスタティックライブラリが完成します。
インタプリンタモードで実行せず、echoコマンドを利用する場合は以下。
$ echo -n -e "create libZ.a\naddlib libA.a libB.a\nsave\nend" | ar -M
Makefileで行う場合
libZ.a: libA.a libY.a
$(RM) $@
$(AR) cqT $@ $^
echo -n -e "create $@\naddlib $@\nsave\nend" | ar -M