/MD, /MT, /LD (Use Run-Time Library)
Indicates whether a multithreaded module is a DLL and specifies retail or debug versions of the run-time library.
/MD[d] /MT[d] /LD[d]
|/MD||Causes the application to use the multithread-specific and DLL-specific version of the run-time library. Defines
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. The actual working code is contained in MSVCRversionnumber.DLL, which must be available at run time to applications linked with MSVCRT.lib.
|/MT||Causes the application to use the multithread, static version of the run-time library. Defines
|/LD||Creates a DLL.
Passes the /DLL option to the linker. The linker looks for, but does not require, a
Links the DLL startup code.
Creates an import library (.lib), if an export (.exp) file is not specified on the command line. You link the import library to applications that call your DLL.
Interprets /Fe (Name EXE File) as naming a DLL rather than an .exe file. By default, the program name becomes basename.dll instead of basename.exe.
Implies /MT unless you explicitly specify /MD.
|/LDd||Creates a debug DLL. Defines
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).
For more information about how to use the debug versions of the run-time libraries, see C Run-Time Library Reference.
Knowledge Base article Q140584 also discusses how to choose the appropriate C run-time library.
For more about DLLs, see DLLs in Visual C++.
To set this compiler option in the Visual Studio development environment
Open the project's Property Pages dialog box. For details, see Working with Project Properties.
Expand the C/C++ folder.
Select the Code Generation property page.
Modify the Runtime Library property.
To set this compiler option programmatically
- See RuntimeLibrary.