次の方法で共有


/MD、/MT、/LD (ランタイム ライブラリを使用)

マルチスレッド モジュールが DLL であるかどうかを示し、ランタイム ライブラリのリテール バージョンまたはデバッグ バージョンを指定します。

構文

/MD[d]
/MT[d]
/LD[d]

解説

オプション 説明
/MD ランタイム ライブラリのマルチスレッド固有および DLL 固有のバージョンを使用します。 _MT および _DLL を定義します。 リンカーは、MSVCRT.lib インポート ライブラリを使用してランタイム シンボルを解決します。
/MDd ランタイム ライブラリのデバッグ マルチスレッド固有および DLL 固有のバージョンを使用します。 _DEBUG_MT、および _DLLを定義します。 リンカーは、MSVCRTD.lib インポート ライブラリを使用してランタイム シンボルを解決します。
/MT ランタイム ライブラリのマルチスレッドの静的バージョンを使用します。 _MTを定義します。 リンカーは LIBCMT.lib を使用してランタイム シンボルを解決します。
/MTd ランタイム ライブラリのデバッグ マルチスレッドの静的バージョンを使用します。 _DEBUG および _MT を定義します。 リンカーは LIBCMTD.lib を使用してランタイム シンボルを解決します。
/LD DLL を作成します。

/DLL オプションをリンカーに渡します。 リンカーは DllMain 関数の有無を確認します。 DllMain 関数を記述しない場合、リンカーは TRUE を返す DllMain 関数を挿入します。

DLL の起動コードをリンクします。

コマンド ラインでエクスポート (.exp) ファイルが指定されていない場合は、インポート ライブラリ (.lib) を作成します。 このインポート ライブラリを、DLL を呼び出すアプリケーションにリンクしてください。

/Fe (名前 EXE ファイル) を、.exe ファイルではなく DLL に名前を付けるものとして解釈します。 既定では、プログラム名は <ベース名>.exe ではなく、<ベース名>.dll になります。

/MD を明示的に指定している場合以外は、/MT が暗黙に指定されます。
/LDd デバッグ DLL を作成します。 _MT および _DEBUG を定義します。

C ランタイム ライブラリと、/clr (共通言語ランタイム コンパイル)を使用してコンパイルするときに使用されるライブラリの詳細については、「CRT ライブラリ機能の」を参照してください。

リンカーの特定の呼び出しに渡されるすべてのモジュールは、同じランタイム ライブラリ コンパイラ オプション (/MD/MT/LD) でコンパイルされている必要があります。

ランタイム ライブラリのデバッグ バージョンの使用方法の詳細については、「C ランタイム ライブラリ リファレンス」を参照してください。

DLL について詳しくは、「Visual Studio で C/C++ DLL を作成する」をご覧ください。

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
  2. [構成プロパティ]>[C/C++]>[コード生成] プロパティ ページを選択します。
  3. [ランタイム ライブラリ] プロパティを変更します。

このコンパイラ オプションをコードから設定するには

関連項目

MSVC コンパイラ オプション
MSVC コンパイラ コマンド ラインの構文
Great C Runtime (CRT) リファクタリング を する