テンプレートを使用する C++ のアーカイブを構築するときには、テンプレートリポジトリ中でインスタンス化されたテンプレート関数をそのアーカイブの中に入れておく必要があります。テンプレートリポジトリは、少なくとも 1 つのオブジェクトファイルを -instances=extern オプションでコンパイルしたときにのみ使用されます。このオプションはそれらのテンプレートを必要に応じてアーカイブに自動的に追加します。
-xar を指定すると、ar -c -r が起動され、アーカイブがゼロから作成されます。
次のコマンド行は、ライブラリファイルとオブジェクトファイルに含まれるテンプレート関数をアーカイブします。
example% CC -xar -o libmain.a a.o b.o c.o |
テンプレートデータベースの .o ファイルをコマンド行に追加しないでください。
アーカイブを構築するときは、ar コマンドを使用しないでください。CC -xar を使用して、テンプレートのインスタンス化情報が自動的にアーカイブに含まれるようにしてください。
ar(1)、表 15–3