Что означают MT и MD? - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь обдумать, как используются опции MT и MD при компиляции проектов C / C ++.Однако, не имея возможности расширить эти предполагаемые аббревиатуры до значимых фраз, я забываю, какой из которых есть от одного абзаца к другому.Как ни странно, ни один из прочитанных мною текстов не начинается с определения М, Т и D. Что они обозначают?

Ответы [ 3 ]

3 голосов
/ 09 мая 2019

Из ссылки параметров компилятора, заданной chris выше:

https://docs.microsoft.com/en-us/cpp/build/reference/compiler-options-listed-alphabetically?view=vs-2019

/MD    Creates a multithreaded DLL using MSVCRT.lib.
/MDd   Creates a debug multithreaded DLL using MSVCRTD.lib.
/MT    Creates a multithreaded executable file using LIBCMT.lib.
/MTd   Creates a debug multithreaded executable file using LIBCMTD.lib.

Таким образом, MT означает M ulti t hreaded и MD означает M ultithreaded D LL.

1 голос
/ 09 мая 2019

Эти переключатели для cl.exe указывают, с какой библиотекой времени выполнения C ссылаться; /MT указывает на связь с LIBCMT.LIB; /MD указывает на связь с MSVCRT.LIB.

Различные библиотеки CRT описаны более подробно здесь . Основное различие между LIBCMT и MSVCRT состоит в том, что первый статически связывает CRT в ваш выходной файл, тогда как MSVCRT ссылается на DLL времени выполнения VC (которая, в отличие от ее названия, не является MSVCRT.DLL (см. здесь )).

0 голосов
/ 09 мая 2019

D LL и в t ernal могут использоваться как мнемоника для различения / MD от /MT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...