ライブラリーのコンパイルとリンク

静的ライブラリーのコンパイル

静的ライブラリーをコンパイルするには、次のようにします。

  1. 各ソース・ファイルをコンパイルして、リンクを持たないオブジェクト・ファイルを作成する。
  2. GCC ar コマンドを実行して、生成されたオブジェクト・ファイルを、アーカイブ・ライブラリー・ファイルに追加する。

たとえば次のようになります。

xlc -c bar.c example.c
ar -rv libfoo.a bar.o example.o

共用ライブラリーのコンパイル

共用ライブラリーをコンパイルするには、次のようにします。

  1. ソース・ファイルをコンパイルして、リンクを持たないオブジェクト・ファイルを作成する。たとえば次のようになります。
       xlc -c foo.c
     
    
  2. -qmkshrobj コンパイラー・オプションを使用して、生成したオブジェクト・ファイルから共用オブジェクトを作成する。たとえば次のようになります。
       xlc -qmkshrobj -o libfoo.so foo.o
     
    

ライブラリーとアプリケーションとのリンク

静的ライブラリーまたは共用ライブラリーをメインプログラムにリンクするには、同じコマンド・ストリングを使用することができます。たとえば次のようになります。

xlc -o myprogram main.c -Ldirectory -lfoo

ここで、directory は、ライブラリーが含まれるディレクトリーのパスです。

-l オプションを使用すると、リンカーは、 -L オプションで指定したディレクトリーで libfoo.so を検索します。見つからない場合は、libfoo.a を検索します。その他のリンケージ・オプション (デフォルトの振る舞いを変更するオプションなど) については、GCC ld の資料を参照してください。

共用ライブラリー間のリンク

モジュールをアプリケーションにリンクするのと同様、共用ライブラリー同士をリンクすれば、その間に依存関係を作成することができます。たとえば次のようになります。

xlc -qmkshrobj -o mylib.so myfile.o -Ldirectory -lfoo
 
IBM Copyright 2003