前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >说说 Windows 编程中 /MT、/MD 的区别

说说 Windows 编程中 /MT、/MD 的区别

作者头像
Harper
发布2021-07-27 09:47:37
1.9K0
发布2021-07-27 09:47:37
举报
文章被收录于专栏:Harper的碎碎念Harper的碎碎念

Windows 编程中无法绕开的编译开关 /MT/MD 其实还有一个 /LD,不过后者很少见。之前对这些一直没有一个清晰的概念,所以就查阅了相关资料。算是对这块有了一个粗浅的认识。

其实最直观的资料还属 MSDN

/MT/MD 其实一言以蔽之,就是运行时的库是静态链接还是动态链接。/MTd/MDd 是他们的 debug 版本。所以他们的选择最直接的就是影响生成文件的大小。静态链接显然会大,动态链接则要求目标机器有需要的运行时库文件。其实我见过的大部分应用还是选择 /MD 比较多,因为在它们的安装目录下会看到 MSVCRTXXX.dll 。显然是带了运行时库的。

/LD 是创建一个 DLL。如果以 /LD 编译,代码中没有写 DLL 入口点,编译器会自动插入一个入口点。值得一提的是这个编译开关默认是 /MT。 除非显式定义 /MD

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档