/MD, /MT, /LD (utilizar la biblioteca en tiempo de ejecución)

Indica si un módulo multiproceso es un archivo DLL y especifica versiones comerciales o de depuración de la biblioteca en tiempo de ejecución.

Sintaxis

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

Comentarios

Opción Descripción
/MD Hace que la aplicación use la versión específica para multiproceso y la versión específica para DLL de la biblioteca en tiempo de ejecución. Define _MT y _DLL y hace que el compilador sitúe el nombre de la biblioteca MSVCRT.lib en el archivo .obj.

Las aplicaciones compiladas con esta opción se vinculan estáticamente con MSVCRT.lib. Esta biblioteca proporciona un nivel de código que permite al vinculador resolver referencias externas. El código de trabajo real reside en el archivo MSVCRversionnumber.DLL, que debe estar disponible en tiempo de ejecución para las aplicaciones vinculadas con MSVCRT.lib.
/MDd Define _DEBUG, _MT y _DLL y hace que la aplicación use la versión de depuración multiproceso y la versión específica para DLL de la biblioteca en tiempo de ejecución. También hace que el compilador coloque el nombre de la biblioteca MSVCRTD.lib en el archivo .obj.
/MT Hace que la aplicación use la versión estática multiproceso de la biblioteca en tiempo de ejecución. Define _MT y hace que el compilador sitúe el nombre de biblioteca LIBCMT.lib en el archivo .obj para que el vinculador utilice LIBCMT.lib al resolver símbolos externos.
/MTd Define _DEBUG y _MT. Esta opción también hace que el compilador coloque el nombre de la biblioteca LIBCMTD.lib en el archivo .obj, así el vinculador usará LIBCMTD.lib para resolver los símbolos externos.
/LD Crea un archivo DLL.

Pasa la opción /DLL al enlazador. El vinculador busca una función DllMain, aunque esta función no es obligatoria. Si no escribe una función DllMain, el vinculador inserta una función DllMain que devuelve TRUE.

Vincula el código de inicio de DLL.

Crea una biblioteca de importación (.lib) si no se especifica un archivo de exportación (.exp) en la línea de comandos. Vincula la biblioteca de importación con aplicaciones que llaman al archivo DLL.

Interpreta /Fe (Name EXE File) para asignar como nombre un archivo DLL en lugar de un archivo .exe. De manera predeterminada, el nombre del programa se convierte en basename.dll en lugar de enbasename.exe.

Implica /MT a menos que se especifique explícitamente /MD.
/LDd Crea un archivo DLL de depuración. Define _MT y _DEBUG.

Para más información sobre las bibliotecas en tiempo de ejecución de C y qué bibliotecas se usan al compilar con /clr (Compilación de Common Language Runtime), vea Características de la biblioteca de CRT.

Todos los módulos que se pasen a una invocación específica del enlazador tienen que haberse compilado con la misma opción de compilador de la biblioteca en tiempo de ejecución (/MD, /MT, /LD).

Para más información sobre cómo usar las versiones de depuración de las bibliotecas en tiempo de ejecución, vea Referencia de la biblioteca en tiempo de ejecución de C.

Para más información sobre los archivos DLL, vea Creación de archivos DLL de C/C++ en Visual Studio.

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Generación de código.

  3. Modifique la propiedad Biblioteca en tiempo de ejecución.

Para establecer esta opción del compilador mediante programación

Consulte también

Opciones del compilador de MSVC
Sintaxis de la línea de comandos del compilador MSVC