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


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

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

Синтаксис

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

Замечания

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

Приложения, компилируемые с этим параметром, статически компонуются с библиотекой MSVCRT.lib. Эта библиотека содержит слой кода, позволяющий компоновщику разрешить внешние ссылки. Фактический рабочий код содержится в номере версии MSVCR.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 файла. По умолчанию имя программы становится базовым.dll вместо basename.exe.

Подразумевает /MT, если вы явно не укажет /MD.
/LDd Создает отладочную библиотеку DLL. Создает определения _MT и _DEBUG.

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

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

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

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

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

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Создание кода.

  3. Измените свойство библиотеки среды выполнения.

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

См. также

Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC