/MD, /MT, /LD (Laufzeitbibliothek verwenden)

Zeigt an, ob es sich bei einem Multithread-Modul um eine DLL handelt, und gibt Veröffentlichungs- oder Debugversionen der Laufzeitbibliothek an.

Syntax

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

Hinweise

Option Beschreibung
/MD Bewirkt, dass die Anwendung die DLL-spezifische und Multithreaded-Version der Laufzeitbibliothek verwendet. Definiert _MT und _DLL und veranlasst, dass der Compiler den Bibliotheksnamen "MSVCRT.lib" in der OBJ-Datei positioniert.

Mit dieser Option kompilierte Anwendungen werden statisch mit der Bibliothek "MSVCRT.lib" verknüpft. Diese Bibliothek stellt eine Codeschicht bereit, die dem Linker ermöglicht, externe Verweise aufzulösen. Der eigentliche Arbeitscode ist in MSVCRversionnumber.DLL enthalten, das zur Laufzeit für Anwendungen verfügbar sein muss, die mit MSVCRT.lib verknüpft sind.
/MDd Definiert _DEBUG, _MT und _DLL und veranlasst, dass die Anwendung die DLL-spezifische und Multithreaded-Version der Laufzeitbibliothek verwendet. Außerdem wird verursacht, dass der Compiler den Bibliotheksnamen "MSVCRTD.lib" in der .obj-Datei positioniert.
/MT Bewirkt, dass die Anwendung die statische Multithreaded-Version der Laufzeitbibliothek verwendet. Definiert _MT und bewirkt, dass der Compiler den Bibliotheksnamen "LIBCMT.LIB" in der OBJ-Datei ablegt, sodass diese Bibliothek vom Linker zum Auflösen externer Symbole verwendet wird.
/MTd Definiert _DEBUG und _MT. Diese Option führt auch dazu, dass der Compiler den Bibliotheksnamen "LIBCMTD.lib" in der .obj-Datei positioniert, sodass der Linker "LIBCMTD.lib" für das Auflösen externer Symbole verwendet.
/LD Erstellt eine DLL.

Übergibt die Option "/DLL " an den Linker. Der Linker sucht nach einer DllMain-Funktion, die jedoch nicht unbedingt erforderlich ist. Wenn Sie keine DllMain-Funktion schreiben, fügt der Linker eine DllMain-Funktion ein, die TRUE zurückgibt.

Verknüpft den DLL-Startcode.

Erstellt eine Importbibliothek (LIB), wenn in der Befehlszeile keine Exportdatei (EXP) angegeben wurde. Sie verknüpfen die Importbibliothek mit Anwendungen, die die DLL aufrufen.

Interpretiert /Fe (Name EXE File) als Benennung einer DLL anstelle einer EXE-Datei. Standardmäßig wird der Programmname zu basename.dll anstelle von basename.exe.

Impliziert /MT, es sei denn, Sie geben /MD explizit an.
/LDd Erstellt eine Debug-DLL. Definiert _MT und _DEBUG.

Weitere Informationen zu C-Laufzeitbibliotheken und zu den Bibliotheken, die beim Kompilieren mit /clr (Common Language Runtime Compilation) verwendet werden, finden Sie unter CRT Library Features.

Alle Module, die an einen bestimmten Aufruf des Linkers übergeben wurden, müssen mit derselben Laufzeitbibliothekscompileroption (/MD, /MT, /LD) kompiliert worden sein.

Weitere Informationen zur Verwendung der Debugversionen der Laufzeitbibliotheken finden Sie in der C-Laufzeitbibliotheksreferenz.

Weitere Informationen zu DLLs finden Sie unter Erstellen von C/C++-DLLs in Visual Studio.

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Wählen Sie die Eigenschaftenseite Konfigurationseigenschaften>C/C++>Codegenerierung aus.

  3. Ändern Sie die Runtime Library-Eigenschaft .

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile