/MD, /MT, /LD (использование библиотеки времени выполнения)
Обновлен: Ноябрь 2007
Позволяют указать, что многопотоковый модуль является библиотекой DLL, и выбрать версию библиотеки времени выполнения для отладки или выпуска.
/MD[d] /MT[d] /LD[d]
Заметки
Параметр |
Описание |
---|---|
/MD |
Указывает на то, что приложение должно использовать многопотоковую версию библиотеки времени выполнения для библиотек DLL. Создает определения _MT и _DLL и указывает компилятору на необходимость размещения имени библиотеки MSVCRT.lib в файле OBJ. Приложения, компилируемые с этим параметром, статически компонуются с библиотекой MSVCRT.lib. Эта библиотека содержит прослойку кода, позволяющую компоновщику разрешить внешние ссылки. Реально работающий код находится в библиотеке MSVCR90.DLL, которая должна быть доступна во время выполнения приложений, скомпонованных с библиотекой MSVCRT.lib. Если параметр /MD используется с определением препроцессора _STATIC_CPPLIB (/D_STATIC_CPPLIB), то приложение будет скомпоновано со статической многопотоковой версией стандартной библиотеки C++ (libcpmt.lib), а не с динамической ее версией (msvcprt.lib), но при этом приложение по-прежнему будет динамически компоноваться с основной библиотекой CRT динамически с помощью библиотеки msvcrt.lib. Обратите внимание, что сочетание определения препроцессора _STATIC_CPPLIB и параметра /clr или /clr:pure не поддерживается. Дополнительные сведения об ограничениях, связанных с параметром /clr, см. в разделе Ограничения /clr. |
/MDd |
Создает определения _DEBUG, _MT, и _DLL; приложение будет использовать отладочную многопотоковую версию библиотеки времени выполнения для библиотек DLL. При этом компилятор поместит имя библиотеки MSVCRTD.lib в файл OBJ. |
/MT |
Указывает на то, что приложение должно использовать статическую многопотоковую версию библиотеки времени выполнения. Создает определение _MT и указывает компилятору на необходимость размещения имени библиотеки LIBCMT.lib в файле OBJ, чтобы компоновщик использовал библиотеку LIBCMT.lib для разрешения внешних символов. |
/MTd |
Создает определения _DEBUG и _MT. Этот параметр также указывает компилятору на необходимость размещения имени библиотеки LIBCMTD.lib в файле OBJ, чтобы компоновщик использовал библиотеку LIBCMTD.lib для разрешения внешних символов. |
/LD |
Создает библиотеку DLL. Передает компоновщику параметр /DLL. Компоновщик будет искать функцию DllMain; тем не менее, она не является обязательной. Если функция DllMain отсутствует, то компоновщик вставляет функцию DllMain, возвращающую значение TRUE. Компонует код запуска DLL. Создает библиотеку импорта (LIB), если в командной строке не указан файл экспорта (EXP); библиотека импорта используется при компоновке приложений, использующих соответствующую библиотеку DLL. Параметр /Fe (именование EXE-файла) при этом задает имя библиотеки DLL, а не файла EXE; в качестве имени программы по умолчанию используется имя базовоеимя.dll, а не базовоеимя.exe. Параметр /MT подразумевается в неявной форме, если только не был явно указан параметр /MD. |
/LDd |
Создает отладочную библиотеку DLL. Создает определения _MT и _DEBUG. |
Дополнительные сведения о библиотеках времени выполнения и том, какие библиотеки используются при компиляции с параметром /clr (компиляция CLR), см. в разделе C Run-Time Libraries.
Все модули, передаваемые компоновщику при конкретном вызове, должны компилироваться с одним и тем же параметром компилятора, указывающим библиотеку времени выполнения (/MD, /MT, /LD).
Дополнительные сведения об использовании отладочных версий библиотек времени выполнения см. в разделе Run-Time Library Reference.
В статье базы знаний Q140584 также описывается порядок выбора подходящей библиотеки времени выполнения C.
Дополнительные сведения о библиотеках DLL см. в разделе Библиотеки DLL.
Установка параметра компилятора в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.
Щелкните папку C/C++.
Щелкните страницу свойств Создание кода.
Измените значение свойства Библиотека времени выполнения.
Установка параметра компилятора программным способом
- См. раздел RuntimeLibrary.