You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

编译C/C++项目时MT、MD选项的全称是什么?

MT 和 MD 的全称及编译选项含义

嘿,这俩缩写刚接触的时候确实容易记混——毕竟大部分资料都默认你知道全称!我来给你把每个字母拆解开讲清楚:

核心全称拆解

  • MT:全称是 Multi-threaded Static(多线程静态链接)
    • 拆字母:
      • M = Multi-threaded(多线程):表示编译后的程序支持多线程运行环境
      • T = Static(静态):意味着C/C++标准库的代码会被静态嵌入到你的最终可执行文件中
  • MD:全称是 Multi-threaded DLL(多线程动态链接)
    • 拆字母:
      • M = Multi-threaded(多线程):同样支持多线程运行
      • D = DLL(动态链接库):表示程序运行时会调用系统中的C/C++标准库动态文件(比如msvcr140.dll这类),不会把库代码打包进可执行文件

实际用法差异

  • MT的话,你的.exe文件会自带完整的标准库代码,好处是程序可以独立运行,不需要目标机器额外安装VC++运行库,但代价是可执行文件体积更大,多个同类型程序会重复占用磁盘和内存资源。
  • MD的话,可执行文件体积更小,多个程序可以共享同一个系统中的标准库文件,节省资源,但部署时要确保目标机器上有对应的VC++运行库,否则程序会启动失败。

内容的提问来源于stack exchange,提问作者Eneroth3

火山引擎 最新活动