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

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

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.

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

OpciónDescripción
/MDHace 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.
/MDdDefine _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.
/MTHace 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.
/MTdDefine _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.
/LDCrea un archivo DLL.

Pasa la opción /DLL al vinculador. 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 (Asignar nombre a un archivo ejecutable) para asignar como nombre un archivo DLL en lugar de un archivo .exe. De forma predeterminada, el nombre del programa se convierte en basename.dll en lugar de en basename.exe.

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

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

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

Para obtener más información sobre el uso de 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.

En el artículo Q140584 de Knowledge Base también se explica cómo puede elegir la biblioteca en tiempo de ejecución de C apropiada.

Para obtener más información sobre los archivos DLL, vea Archivos DLL en Visual C++.

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 obtener información detallada, vea Cómo: Abrir páginas de propiedades del proyecto.

  2. Expanda la carpeta C/C++.

  3. Seleccione la página de propiedades Generación de código.

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

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

Opciones del compilador
Establecer las opciones del compilador

Mostrar: