/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

  1. Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.

  2. Щелкните папку C/C++.

  3. Щелкните страницу свойств Создание кода.

  4. Измените значение свойства Библиотека времени выполнения.

Установка параметра компилятора программным способом

См. также

Ссылки

Параметры компилятора

Настройка параметров компилятора