/MD, /MT, /LD (Laufzeitbibliothek verwenden)
Mit dieser Option können Sie angeben, ob es sich bei einem Multithread-Modul um eine DLL handelt, und Sie können Veröffentlichungs- oder Debugversionen der Laufzeitbibliothek auswählen.
/MD[d]
/MT[d]
/LD[d]
Hinweise
Option |
Beschreibungen |
---|---|
/MD |
Bewirkt, dass von der Anwendung die Multithread- und DLL-spezifische Version der Laufzeitbibliothek verwendet wird. Definiert _MT und _DLL und führt dazu, dass vom Compiler in der OBJ-Datei der Bibliotheksname MSVCRT.LIB abgelegt wird. Mit dieser Option kompilierte Anwendungen werden statisch mit MSVCRT.lib verknüpft. Diese Bibliothek stellt eine Code-Ebene bereit, die dem Linker ermöglicht, externe Verweise aufzulösen. Der tatsächlich ausgeführte Code ist in der Datei MSVCR100.DLL, enthalten. Diese Datei muss zur Laufzeit für die mit MSVCRT.LIB verknüpften Anwendungen verfügbar sein. |
/MDd |
Definiert _DEBUG, _MT und _DLL und führt dazu, dass von der Anwendung die Multithread- und DLL-spezifische Debugversion der Laufzeitbibliothek verwendet wird Die Option veranlasst den Compiler auch, den Bibliotheksnamen MSVCRT.lib in die OBJ-Datei einzufügen. |
/MT |
Bewirkt, dass die Anwendung die statische Multithread-Version der Laufzeitbibliothek verwendet. Definiert _MT und bewirkt, dass vom Compiler in der OBJ-Datei der Bibliotheksname LIBCMT.LIB abgelegt wird, sodass diese Bibliothek vom Linker zum Auflösen externer Symbole verwendet wird. |
/MTd |
Definiert _DEBUG und _MT. Diese Option veranlasst den Compiler auch, den Bibliotheksnamen LIBCMTD.lib so in die OBJ-Datei einzufügen, dass der Linker LIBCMTD.lib zum 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. Bindet den DLL-Startcode. Erstellt eine Importbibliothek (.lib), wenn in der Befehlszeile keine Exportdatei (.exp) angegeben ist; Sie verknüpfen die Importbibliothek mit Anwendungen, die die DLL aufrufen. Durch diese Option wird /Fe (Name der EXE-Datei) als Benennung einer DLL anstelle einer EXE-Datei interpretiert. Der Standardprogrammname basename.exe wird durch basename.dll ersetzt. Impliziert /MT, wenn Sie /MD nicht explizit angeben. |
/LDd |
Erstellt eine Debug-DLL. Definiert _MT und _DEBUG. |
Weitere Informationen zu C-Laufzeitbibliotheken finden Sie unter C Run-Time Libraries. An dieser Stelle erfahren Sie auch, welche Bibliotheken beim Kompilieren mit /clr (Common Language Runtime-Kompilierung) verwendet werden.
Alle an einen bestimmten Aufruf des Linkers übergebenen Module müssen mit derselben Compileroption für die Laufzeitbibliothek kompiliert werden (/MD, /MT, /LD).
Weitere Informationen über die Verwendung der Debugversionen von Laufzeitbibliotheken finden Sie unter Run-Time Library Reference.
Auch im Knowledge Base-Artikel Q140584 wird beschrieben, wie die passende C-Laufzeitbibliothek auszuwählen ist.
Weitere Informationen zu DLLs finden Sie unter DLLs.
So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Gewusst wie: Öffnen von Projekteigenschaftenseiten.
Klicken Sie auf den Ordner C/C++.
Klicken Sie auf die Eigenschaftenseite Codegenerierung.
Ändern Sie die Eigenschaft Laufzeitbibliothek.
So legen Sie diese Compileroption programmgesteuert fest
- Weitere Informationen finden Sie unter RuntimeLibrary.