MT和MD代表什么?

时间:2019-05-09 13:55:26

标签: visual-studio visual-c++

我正在尝试在编译C / C ++项目时如何使用MT和MD选项。但是,由于无法将这些假定的缩写词扩展为有意义的短语,因此我忘记了从一个段落到下一个段落中的哪一个。奇怪的是,我读过的所有文章都没有定义M,T和D。它们代表什么?

3 个答案:

答案 0 :(得分:3)

来自上面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 ,而MD表示 M 多线程的 D LL。

答案 1 :(得分:1)

这些cl.exe的开关指定要链接的C运行时库; /MT指定与LIBCMT.LIB链接; /MD指定与MSVCRT.LIB链接。

更详细地描述了不同的CRT库hereLIBCMTMSVCRT之间的主要区别在于,前者将CRT静态链接到您的输出文件中,而MSVCRT链接到VC运行时DLL(与它的名字不同,它不是MSVCRT.DLL(请参阅here)。

答案 2 :(得分:0)

D LL和 t ernal可以用作区分/ MD和/ MT的助记符。