同じエントリ・ポイントを提供しているが,異なった性質を持つ Visual C++ 実行時ライブラリーが幾つかあります。基本 Visual C++ ライブラリーは,libc.lib です。これは,シングルスレッド,非デバッグ,スタティックです。Visual C++ と Visual Fortran ライブラリーは同じ形式で無ければなりません。矛盾が生じる形式の組み合わせには以下のものがあります。
シングルスレッド・ライブラリーとマルチスレッド・ライブラリーの混在
スタティック・ライブラリーとダイナミック・リンク・ライブラリーの混在
デバッグ用ライブラリーと非デバッグ用ライブラリーの混在
基本 Fortran ライブラリーは,プロジェクト・タイプに依存します。
Fortran プロジェクト・タイプ | 使用される基本ライブラリー |
---|---|
Fortran Console | スタティック,シングルスレッド・ライブラリーの dfor.lib と libc.lib |
Fortran Standard Graphics | スタティック,マルチスレッド・ライブラリーの dformt.lib と libcmt.lib |
Fortran QuickWin | スタティック,マルチスレッド・ライブラリーの dformt.lib と libcmt.lib |
Fortran Windows | スタティック,マルチスレッド・ライブラリーの dformt.lib と libcmt.lib |
Fortran DLL | ダイナミック・リンク・ライブラリー dfordll と msvcrt (およびインポート・ライブラリー) |
Fortran Static Library | スタティック,シングルスレッド・ライブラリーの dfor.lib と libc.lib |
純粋な Fortran アプリケーションは,ライブラリーの形式が一致しない場合があります。一般的なシナリオは,Fortran Static Library とリンクする Fortran QuickWin アプリケーションです。Fortran QuickWin アプリケーションはマルチスレッド・ライブラリーを使用し,基本設定では,Fortran Static Library はスタティック,シングルスレッド・ライブラリーを使用してビルドされます。これは矛盾を起こします。そのため,Fortran Static Library と Fortran QuickWin アプリケーションは,両方ともスタティック,マルチスレッド・ライブラリーを使ってビルドしなければなりません。
同様に,異なった C/C++ アプリケーションは異なった C ライブラリーとリンクします。基本設定を変更せずに異なった形式のアプリケーションを混在させる場合,矛盾が発生します。デバッグ用のライブラリーは,基本名に文字 "d" が付加されています。
スタティック,シングルスレッド:libc.lib と libcd.lib
スタティック,マルチスレッド:libcmt.lib と libcmtd.lib
ダイナミック・リンク・ライブラリー:msvcrt と msvcrtd (.lib はインポート・ライブラリーで,.dll はダイナミック・リンク・ライブラリー)
「Debug」構成を使用する場合,Visual C++ はデバッグ用ライブラリーを選択します。Visual Fortran は,どの構成でもデバッグ用ライブラリーを選択しませんが,これらを使うように指定できる「Project Settings」にオプションを提供しています。ビジュアル開発環境で Fortran ライブラリーの異なった形式を指定するには,「Project Settings」ダイアログボックスを開き,「Fortran」タブをクリックし,「Libraries」カテゴリを選択します。
スタティック・ライブラリーを指定するには,「Use Run-Time Libraries」の下の「Static」を選択します (/libs:static を参照)。
ダイナミック・リンク・ライブラリーを指定するには,「Use Run-Time Libraries」の下の「DLL」を選択します (/libs:dll を参照)。
マルチスレッド・ライブラリーを指定するには,「Use Multi-Threaded Libraries」(チェックボックス) を選択します (/threads を参照)。
デバッグ用ライブラリーを指定するには,「Use Run-Time Libraries」の下の適切なデバッグ用ライブラリーの型を選択します (/[no]dbglibs を参照)。デバッグ用ライブラリーを指定 (/dbglibs) し,DLL ライブラリーを要求 (/libs:dll) (Debug と DLL の両方を含むように「Use Run-Time Libraries」を設定) した場合,この組み合わせは Fortran DLL のデバッグ・バージョンを選択することに注意してください。これらの Fortran DLL ファイルは C デバッグ用 DLL とリンクされています。
「Use Run-Time Libraries」の下の「QuickWin」または「Standard Graphics」を選択した場合,この選択は暗黙的にマルチスレッド・ライブラリーを要求します。
Visual C++ ライブラリーの使用と利用可能なコンパイラ・オプションに関しては,「Visual Fortran と Visual C++ が混在したプログラミング」を参照してください。