俩句话理解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。的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch:深入理解 Elasticsearch 查询:过滤器查询 vs 全文搜索
Elasticsearch:深入理解 Elasticsearch 查询:过滤器查询 vs 全文搜索
Elasticsearch:深入理解 Elasticsearch 查询:过滤器查询 vs 全文搜索
error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug