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

其中以小写“d”结尾的选项表示的DEBUG版本的,没有“d”的为RELEASE版本。大型项目中必须要求所有组件和第三方库的运行时库是统一的,否则将会出现LNK2005井喷。
      单线程运行时库选项/ML和/MLd在VS2003以后就被废了。

/MT和/MTd表示采用多线程CRT库的静态lib版本。该选项会在编译时将运行时库以静态lib的形式完全嵌入。该选项生成的可执行文件运行时不需要运行时库dll的参加,会获得轻微的性能提升,但最终生成的二进制代码因链入庞大的运行时库实现而变得非常臃肿。当某项目以静态链接库的形式嵌入到多个项目,则可能造成运行时库的内存管理有多份,最终将导致致命的“Invalid Address specified to RtlValidateHeap”问题。另外托管C++和CLI中不再支持/MT和/MTd选项。

/MD和/MDd表示采用多线程CRT库的动态dll版本,会使应用程序使用运行时库特定版本的多线程DLL。链接时将按照传统VC链接dll的方式将运行时库MSVCRxx.DLL的导入库MSVCRT.lib链接,在运行时要求安装了相应版本的VC运行时库可再发行组件包(当然把这些运行时库dll放在应用程序目录下也是可以的)。 因/MD和/MDd方式不会将运行时库链接到可执行文件内部,可有效减少可执行文件尺寸。当多项目以MD方式运作时,其内部会采用同一个堆,内存管理将被简化,跨模块内存管理问题也能得到缓解。

结论:/MD和/MDd将是潮流所趋,/ML和/MLd方式请及时放弃,/MT和/MTd在非必要时最好也不要采用了。
注:本文转载于https://blog.csdn.net/ren65432/article/details/41676625

关于vs中代码生成的运行库相关推荐

  1. vs编译c语言停止工作运行库mt,vc++编译时运行库选择(/MT/MTd/MD/MDd)

    vc++编译时运行库选择(/MT/MTd/MD/MDd) vc++编译时运行库选择(/MT./MTd./MD./MDd) 在vs中,项目属性 ->C/C++ ->代码生成 ->运行库 ...

  2. 静态库、动态库、静态链接、动态链接、系统运行库混合、MD MT默认库冲突问题

    一.静态库项目 静态库lib:(注意和"静态运行库"区分)   就是.lib文件,一个.c或.cpp会编译成一个.obj,多个.obj可以组合成一个.lib库.lib=多个obj. ...

  3. 微软常用运行库合集2020

    简介 微软常用运行库合集2020是一款电脑系统中必不可少.非常重要的微软运行库合集版本,对于系统微软常用软件来说至关重要,由于微软软件运行库合集采用microsoft visual studio 20 ...

  4. VS项目属性中的C/C++运行库:MT、MTd、MD、MDd

    原文:https://blog.csdn.net/u011499425/article/details/52475847 VS项目属性中的C/C++运行库:MT.MTd.MD.MDd 文章转载自:ht ...

  5. 微软常用运行库(持续更新中)

    一.什么是运行库 运行库就是支持大部分程序软件运行的基础,由于很多Windows系统的常用软件都是采用 Microsoft Visual Studio 编写的[如图1.1所示],所以这类软件的运行需要 ...

  6. 游戏中java未安装不了_游戏运行库和常见游戏安装问题的解决方法

    游戏运行库是玩游戏必不可少的东西,相信玩家们都遇到因为没装某某运行库而导致游戏无法安装或者玩不了的问题,今天小编就为大家列出了一些常见的运行库以及游戏安装和运行时的一些问题的解决方法. 首先小编要为大 ...

  7. MFC 在静态库中使用MFC,静态多线程 兼容更多windows版本避免提示缺少很多dll,安装运行库 Visual C++ Redistributable for Visual Studio

    不管动态还是静态都有可能缺dll.最安全的是安装运行库: Download Visual C++ Redistributable for Visual Studio 2015 from Officia ...

  8. Visual C++中的C运行时库浅析

    1.概论 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的.C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于 ...

  9. c语言中组件出现错误,错误:R6034 运行时错误! 应用程序尝试加载 C 运行库时出现错误。 有关详细信息,请联系应用程序的支持团队...

    错误:R6034 运行时错误! 应用程序尝试加载 C 运行库时出现错误. 有关详细信息,请联系应用程序的支持团队 错误消息 ArcGIS Engine 应用程序 10.4 和 10.4.1 版本会返回 ...

最新文章

  1. python图像分割动态域值_python+opencv阈值分割
  2. PHP常用字符串函数小结
  3. 找出二维数组中每行的最小数但最小数的列不能相同
  4. c语言数组如何把一串数字存入数组_C语言经典编程题(下)
  5. UILabel使用自定义字体
  6. Java多线程之后台线程不执行finally
  7. shell信息查看脚本linux,每次登录Shell时使用shell脚本查看Linux上的系统信息
  8. 用Python绘制棒棒糖图表,真的好看!
  9. 一些有意思的博客收藏
  10. [置顶]       webservice系列1---基于web工程上写一个基本数据类型的webservice
  11. MyCat分片规则之固定hash分片
  12. (Python)裁剪人脸图片获得人脸的嘴唇区域
  13. 客房管理系统java代码_java客房管理系统代码
  14. 计算机找网络共享盘快捷键,电脑共享快捷键不见了怎么办
  15. Java练习题【新】
  16. 医学信息化管理与建设
  17. UE5 Lumen实现分析
  18. 十年架构师留下最完整的Java学习路线,学完年薪88W
  19. c语言开发exporter,cadvisor node-exporter引发的容器文件系统泄漏
  20. 一个正整数 n ,求n!的末尾有几个0

热门文章

  1. SQL删除一个数据库内所有表的数据保留表结构
  2. 微信小程序之bindtap事件绑定传参
  3. SQL-根据多个条件更新数据
  4. UI第九节——UIProgressView
  5. WordPress 多个安全漏洞
  6. 高效代码审查:来自前质疑者的9个建议
  7. Node-Web应用框架Express
  8. hdu4642博弈(矩阵)
  9. 汇编 过程 创建并测试 proc endp call ret uses
  10. 【Flutter】JSON 模型转换 ( JSON 序列化工具 | JSON 手动序列化 | 根据 JSON 编写 Dart 模型类 | 在线自动根据 JSON 转换 Dart 类 )