Поделиться через


/MD, /MT, /LD (использование библиотеки времени выполнения)

Указывает, является ли многопоточный модуль библиотекой DLL, и задает версию библиотеки времени выполнения для отладки или выпуска.

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

Заметки

Параметр

Описание

/MD

Предписывает приложению использование специальной многопоточной и зависящей от DLL версии библиотеки времени выполнения. Определяет параметры _MT и _DLL и предписывает компилятору размещение имени библиотеки MSVCRT.lib в OBJ-файле.

Приложения, компилируемые с этим параметром, статически компонуются с библиотекой MSVCRT.lib. Эта библиотека содержит слой кода, позволяющий компоновщику разрешить внешние ссылки. Фактический работающий код находится в библиотеке MSVCRversionnumber.DLL, которая должна быть доступна во время выполнения приложений, скомпонованных с библиотекой MSVCRT.lib.

/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. По умолчанию программа получает имя basename.dll, а не basename.exe.

Неявно подразумевается параметр /MT, если не указан параметр /MD.

/LDd

Создает отладочную библиотеку DLL. Создает определения _MT и _DEBUG.

Дополнительные сведения о библиотеках времени выполнения C и том, какие библиотеки используются при компиляции с параметром /clr (компиляция CLR), см. в разделе Функции библиотеки CRT.

Все модули, передаваемые компоновщику при конкретном вызове, должны компилироваться с одним и тем же параметром компилятора, указывающим библиотеку времени выполнения (/MD, /MT, /LD).

Дополнительные сведения об использовании отладочных версий библиотек времени выполнения см. в разделе Справочник по библиотеке времени выполнения C.

В статье базы знаний Q140584 также описывается порядок выбора подходящей библиотеки времени выполнения C.

Дополнительные сведения о библиотеках DLL см. в разделе DLL в Visual C++.

Установка данного параметра компилятора в среде разработки Visual Studio

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

  2. Разверните папку C/C++.

  3. Выберете страницу свойств Создание кода.

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

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

См. также

Ссылки

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

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