/MD、/MT、/LD (ランタイム ライブラリの使用)/MD, /MT, /LD (Use Run-Time Library)

マルチスレッド モジュールが DLL であるかどうかを指定し、ランタイム ライブラリのリテール バージョンまたはデバッグ バージョンを指定します。Indicates whether a multithreaded module is a DLL and specifies retail or debug versions of the run-time library.

構文Syntax

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

RemarksRemarks

オプションOption 説明Description
/MD/MD アプリケーションでランタイム ライブラリのマルチスレッド対応および DLL 対応バージョンが使用されます。Causes the application to use the multithread-specific and DLL-specific version of the run-time library. _MT および _DLL を定義し、コンパイラにライブラリ名 MSVCRT.lib を .obj ファイルに挿入させます。Defines _MT and _DLL and causes the compiler to place the library name MSVCRT.lib into the .obj file.

このオプションを使用してコンパイルされたアプリケーションは、MSVCRT.lib に静的にリンクされます。Applications compiled with this option are statically linked to MSVCRT.lib. このライブラリには、リンカーが外部参照を解決できるようにするコード レイヤーが用意されています。This library provides a layer of code that enables the linker to resolve external references. 実際の作業コードは、MSVCRversionnumberに含まれています。DLL。実行時に、MSVCRT.DLL にリンクされているアプリケーションに対して使用可能である必要があります。The actual working code is contained in MSVCRversionnumber.DLL, which must be available at run time to applications linked with MSVCRT.lib.
/MDd/MDd _DEBUG_MT、および _DLL を定義します。アプリケーションで、マルチスレッド対応バージョンおよび DLL 対応バージョンのランタイム ライブラリが使用されます。Defines _DEBUG, _MT, and _DLL and causes the application to use the debug multithread-specific and DLL-specific version of the run-time library. また、コンパイラによって、ライブラリ名 MSVCRTD.lib が .obj ファイルに挿入されます。It also causes the compiler to place the library name MSVCRTD.lib into the .obj file.
/MT/MT アプリケーションで、マルチスレッド バージョンの静的なランタイム ライブラリが使用されます。Causes the application to use the multithread, static version of the run-time library. _MT を定義します。また、コンパイラにライブラリ名 LIBCMT.lib を .obj ファイルに挿入させるため、リンカーは LIBCMT.lib を使って外部シンボルを解決します。Defines _MT and causes the compiler to place the library name LIBCMT.lib into the .obj file so that the linker will use LIBCMT.lib to resolve external symbols.
/MTd/MTd _DEBUG および _MT を定義します。Defines _DEBUG and _MT. このオプションによって、リンカーが LIBCMTD.lib を使用して外部シンボルを解決できるように、コンパイラによりライブラリ名 LIBCMTD.lib が .obj ファイルに挿入されます。This option also causes the compiler to place the library name LIBCMTD.lib into the .obj file so that the linker will use LIBCMTD.lib to resolve external symbols.
/LD/LD DLL を作成します。Creates a DLL.

リンカーに /dllオプションを渡します。Passes the /DLL option to the linker. リンカーは DllMain 関数の有無を確認します。The linker looks for, but does not require, a DllMain function. DllMain 関数が記述されていないと、TRUE を返す DllMain 関数がリンク時に自動的に挿入されます。If you do not write a DllMain function, the linker inserts a DllMain function that returns TRUE.

DLL の起動コードをリンクします。Links the DLL startup code.

コマンド ラインでエクスポート (.exp) ファイルが指定されていない場合は、インポート ライブラリ (.lib) を作成します。Creates an import library (.lib), if an export (.exp) file is not specified on the command line. このインポート ライブラリを、DLL を呼び出すアプリケーションにリンクしてください。You link the import library to applications that call your DLL.

/Fe (名前付き Exe ファイル)を .exe ファイルではなく DLL に名前を付けて解釈します。Interprets /Fe (Name EXE File) as naming a DLL rather than an .exe file. 既定では、プログラム名は、ベース名ではなく、.dllになりますBy default, the program name becomes basename.dll instead of basename.exe.

/Mdを明示的に指定しない限り、 /mtを意味します。Implies /MT unless you explicitly specify /MD.
/LDd/LDd デバッグ DLL を作成します。Creates a debug DLL. _MT および _DEBUG を定義します。Defines _MT and _DEBUG.

C ランタイムライブラリと、 /clr (共通言語ランタイムのコンパイル)を使用してコンパイルするときに使用されるライブラリの詳細については、「 CRT ライブラリの機能」を参照してください。For more information about C run-time libraries and which libraries are used when you compile with /clr (Common Language Runtime Compilation), see CRT Library Features.

リンカーの特定の呼び出しに渡されるすべてのモジュールは、同じランタイムライブラリコンパイラオプション ( /md/mt/ld) を使用してコンパイルされている必要があります。All modules passed to a given invocation of the linker must have been compiled with the same run-time library compiler option (/MD, /MT, /LD).

ランタイムライブラリのデバッグバージョンを使用する方法の詳細については、「 C ランタイムライブラリリファレンス」を参照してください。For more information about how to use the debug versions of the run-time libraries, see C Run-Time Library Reference.

Dll の詳細については、「 Visual Studio での C/C++ dll の作成」を参照してください。For more about DLLs, see Create C/C++ DLLs in Visual Studio.

Visual Studio 開発環境において、このコンパイラ オプションを設定する方法To set this compiler option in the Visual Studio development environment

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。Open the project's Property Pages dialog box. 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関するページを参照してください。For details, see Set C++ compiler and build properties in Visual Studio.

  2. [構成プロパティ] > [C/C++] > [コマンド ライン] プロパティ ページを選択します。Select the Configuration Properties > C/C++ > Command Line property page.

  3. [コード生成] プロパティページを選択します。Select the Code Generation property page.

  4. ランタイムライブラリのプロパティを変更します。Modify the Runtime Library property.

このコンパイラ オプションをコードから設定するにはTo set this compiler option programmatically

関連項目See also

MSVC コンパイラ オプションMSVC Compiler Options
MSVC コンパイラ コマンド ラインの構文MSVC Compiler Command-Line Syntax