マルチスレッド・プログラムのコンパイルとリンク

サポート・ライブラリー DFORMT.LIB は,静的にリンクされたマルチスレッド・プログラムを作成するための再入可能なライブラリーです。共有される DFORMD.DLL 内のコードを呼び出す DFORMD.LIB ライブラリーも,やはり再入可能です。DFORMT.LIB を使ってビルドされたプログラムは,それが呼び出すダイナミック・リンク・ライブラリーと,Fortran 実行時ライブラリーのコードやデータは共有しません。DLL を呼び出す予定がある場合,DFORMD.LIB をリンクする必要があります。

Fortran 実行時ライブラリーを使用するマルチスレッド・アプリケーションをビルドするためには,リンカーに対して,ライブラリーの特殊な版を使用するように指示する必要があります。次の段落で説明するように,コマンド行から,または Microsoft ビジュアル開発環境の「Project Settings」ダイアログボックスで,/threads コンパイラ・オプションを指定します。

...\DF\SAMPLES\ADVANCED\WIN32\THREADS フォルダにはサンプルのマルチスレッド・プロジェクト THREADS が含まれています。このサンプルをビルドするには,プロジェクト・ワークスペースを開き,「Build」メニューから「Build All」を選択します。次に,ビジュアル開発環境を使って独自のマルチスレッド・プログラムのコンパイルとリンクを行うためのステップを示します。

マルチスレッド・プログラムのコンパイル,リンク方法

  1. 新しいプロジェクトを作成します。「Project」タブを選択し,プロジェクト・タイプを指定します。(サンプル THREADS.F90 は QuickWin プロジェクトです。)

  2. ソース・コードを含んでいるファイルをプロジェクトに追加します。

  3. 「Project」メニューから「Settings」を選択します。

    「Project Settings」ダイアログボックスが表示されます。

  4. 「Fortran」タブの「Fortran Libraries」カテゴリを選択し,「Use Multi-Threaded Library」チェックボックスを設定し,「Use Runtime Libraries」を「Static」(DFORMT.LIB) または「DLL」(DFORMD.LIB) に設定します。

  5. 「Build」メニューから「Build All」を選択して,実行形式ファイルを作成します。

以下のステップは,コマンド行からサンプル・マルチスレッド・プログラムをコンパイル,リンクする方法について説明しています。

サンプル・マルチスレッド・プログラムをコマンド行からコンパイル,リンクする方法

  1. ライブラリー・ファイル・ディレクトリが LIB 環境変数で指定されていることを確認します。

  2. DF コマンド行オプション /threads を使って,プログラムのコンパイルとリンクを行います。次に例を示します。

    	DF /threads  MYTHREAD.F90
    

/threads コンパイラ・オプション (ビジュアル開発環境でマルチスレッド・アプリケーションであることを指定すると自動的に設定されます) は,リンカーに対して,基本ライブラリーとして DFORMT.LIB を使用するように指示します。

THREADS.F90 サンプルのコンパイルとリンクを行うコマンドは次のようになります。

	DF /libs:qwin THREADS.F90

/threads コンパイラ・オプションにより,リンカーはマルチスレッド・ライブラリーを検索します。/libs:qwin は,QuickWin マルチウィンドウ・アプリケーションを要求します。

マルチスレッド・コードと DLL の両方を使用する場合,コンパイラ・オプション /libs:dll/threads を選択します。/libs:dll および /threads オプションは Fortran Console アプリケーション・プロジェクトでのみ使用でき,QuickWin アプリケーションでは使用できません。