俩句话理解VS的MT/MD和MTD/MDD。

Posted CodeBowl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了俩句话理解VS的MT/MD和MTD/MDD。相关的知识,希望对你有一定的参考价值。

VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试。

DLL(/MDd)、单线程(/ML)、单线程调试(/MLd)。目前Win7、Win10等,选择MD问题不大,但是XP等一些比较老的系统需要选择MT。

为什么这么说呢?

下面我用俩句话解释一下MT和MD的区别。

(1)/MD,表示运行时库由操作系统提供一个DLL,程序里不集成。编译出来的文件比较小。使用的库文件是 MSVCRT.lib
(2)/MT,表示运行时库由程序集成。编译出来的文件比较大。在运行的机器上不需要安装依赖的VS的动态库,使用的库文件是 LIBCMT.lib

有一定经验的开发者,可能遇到在Windows10上编好的程序,放到xp系统上就不能运行了,还会提示缺少MSVCRT.dll文件,这就是因为程序是以MD编译的,而Windows xp系统上缺少对应的运行时库。

那么MTD和MDD又是什么意思呢?

d的意思就是debug,MTD和MDD就是MT和MD的调试版。

以上是关于俩句话理解VS的MT/MD和MTD/MDD。的主要内容,如果未能解决你的问题,请参考以下文章

全面理解JavaScript中的 this

Elasticsearch:深入理解 Elasticsearch 查询:过滤器查询 vs 全文搜索

Elasticsearch:深入理解 Elasticsearch 查询:过滤器查询 vs 全文搜索

Elasticsearch:深入理解 Elasticsearch 查询:过滤器查询 vs 全文搜索

error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug

深入理解vue