マルチスレッドのプログラミング

POSIX スレッド環境でのコンパイルとリンク

アプリケーションで pthread のみを使用するか、または Solaris スレッドと pthread の両方を使用している場合は、次のコマンドを使用してコンパイルとリンクを行います。


cc -mt [ flag ... ] file... [ library... ] -lpthread 

-mt オプションが libthread ライブラリにリンクするに対して、-lpthread オプションは libpthread ライブラリにリンクします。libpthread によって libthread へのインタフェースが提供されるため、pthread を使用する場合は両方のフラグが必要です。

-mt オプションは、コマンド行の任意の場所に指定できます。-lpthread オプションは、ユーザーライブラリのあとに指定するようにします。-mt-lpthread の相対位置は関係ありません。

たとえば、次の行はすべて等価です。

cc -mt -o myprog f1.o f2.o   -lmylib -lpthread
cc     -o myprog f1.o f2.o -mt -lmylib -lpthread
cc     -o myprog f1.o f2.o -lmylib -mt -lpthread
cc     -o myprog f1.o f2.o -lmylib -lpthread -mt

cc コマンドのオプションの詳細については、Sun Studio cc(1) のマニュアルページおよび『Sun Studio 12: C ユーザーズガイド』を参照してください。