/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.
/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 tatsächlich ausgeführte Code ist in der Datei MSVCRversionnumber.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 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 der EXE-Datei) als Benennung einer DLL anstelle einer EXE-Datei. Der Name des Programms lautet standardmäßig basename.dll und nicht basename.exe. Impliziert /MT, sofern Sie nicht explizit /MD angeben. |
/LDd |
Erstellt eine Debug-DLL. Definiert _MT und _DEBUG. |
Weitere Informationen zu C-Laufzeitbibliotheken finden Sie unter CRT-Bibliotheksfunktionen. 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 C-Laufzeitbibliotheksverweis.
Auch im Knowledge Base-Artikel Q140584 wird beschrieben, wie die passende C-Laufzeitbibliothek auszuwählen ist.
Weitere Informationen über DLLs finden Sie unter DLLs in Visual C++.
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.
Erweitern Sie den Ordner C/C++.
Wählen Sie die Eigenschaftenseite Codegenerierung aus.
Ändern Sie die Eigenschaft Laufzeitbibliothek.
So legen Sie diese Compileroption programmgesteuert fest
- Siehe RuntimeLibrary.