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

Actualización: noviembre 2007

Le permite indicar si un módulo multiproceso es un archivo DLL y seleccionar versiones de lanzamiento o de depuración de la biblioteca en tiempo de ejecución.

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

Comentarios

Opción

Descripción

/MD

Hace que la aplicación utilice la versión específica del multiprocesamiento y de 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 a MSVCRT.lib. Esta biblioteca proporciona una capa de código que permite al vinculador resolver referencias externas. El código de trabajo real reside en el archivo MSVCR90.DLL, el cual debe estar disponible en tiempo de ejecución para las aplicaciones vinculadas con MSVCRT.lib.

Cuando /MD se utiliza con la definición _STATIC_CPPLIB (/D_STATIC_CPPLIB), la aplicación se vinculará con la biblioteca estática estándar de subprocesos múltiples de C++ (libcpmt.lib), en lugar de la versión dinámica (msvcprt.lib), aunque aún se vinculará dinámicamente con el CRT principal por medio de msvcrt.lib.

Observe que la combinación de la definición del preprocesador _STATIC_CPPLIB y la opción del compilador /clr o /clr:pure no se admite. Para obtener más información sobre las limitaciones de la opción /clr, vea Restricciones de /clr.

/MDd

Define _DEBUG, _MT y _DLL y hace que su aplicación utilice la versión de depuración de multiprocesamiento y DLL de la biblioteca en tiempo de ejecución. También hace que el compilador sitúe el nombre de la biblioteca MSVCRTD.lib en el archivo .obj.

/MT

Hace que la aplicación utilice la versión multiprocesamiento estática 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 para resolver los símbolos externos.

/MTd

Define _DEBUG y _MT. También hace que el compilador sitúe el nombre de la biblioteca LIBCMTD.lib en el archivo .obj para que el vinculador use LIBCMTD.lib para resolver los símbolos externos.

/LD

Crea una DLL.

Pasa la opción /DLL al vinculador. El vinculador busca, aunque no requiere, una función DllMain. 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; el programador vincula la biblioteca de importación con las aplicaciones que llaman a la DLL.

Interpreta /Fe (Asignar nombre a un archivo ejecutable) como nombrar un archivo DLL en lugar de un archivo .exe; el nombre de programa predeterminado se convierte en nombrebase.dll en lugar de nombrebase.exe.

Implica /MT a menos que especifique explícitamente /MD.

/LDd

Crea una 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 sobre cuáles se utilizan para compilar con /clr (Compilación de Common Language Runtime), vea C Run-Time Libraries.

Todos los módulos pasados a una invocación determinada del vinculador se deben de haber compilado con la misma opción del compilador de la biblioteca en tiempo de ejecución (/MD, /MT, /LD).

Para obtener más información sobre cómo utilizar las versiones de depuración de las bibliotecas en tiempo de ejecución, vea Run-Time Library Reference.

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 acerca de los archivos DLL, vea Archivos DLL.

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. Haga clic en la carpeta C/C++.

  3. Haga clic en 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

Vea también

Referencia

Opciones del compilador

Establecer las opciones del compilador