Visual Studio中MD与MT的区别及运行库类型选择

MT与MD的区别

  • /MT:是multithread-static version,是多线程静态版本的意思,项目会使用运行时库的多线程静态版本,编译器会将LIBCMT.lib放入.obj文件中,以便链接器使用LIBCMT.lib解析外部符号;
  • /MTd:是定义了_DEBUG和/MT,是/MT类型的debug版本;
  • /MD:是multithread-dll version,是多线程dll版本的意思,项目会使用运行时库的多线程动态dll版本,编译器会将MSVCRT.lib放入.obj文件中,在编译项目时,它会静态链接MSVCRT.lib,但在实际运行过程中,它会链接使用MSVCR90.dll;
  • MDd:是定义了_DEBUG和/MD,是/MD类型的debug版本;

用/MT类型生成的,则它所调用的运行时库为LIBCMT.lib

用/MD类型的,工程在链接时会调用MSVCRT.lib和MSVCR90.dll

相关推荐
weixin_404679313 小时前
vscode 配置cpp调试环境
数据库·ide·vscode·编辑器
weixin_404679313 小时前
解决vscode, cpp库包找不到问题
ide·vscode·编辑器
Yupureki4 小时前
《算法竞赛从入门到国奖》算法基础:入门篇-二分算法
c语言·开发语言·数据结构·c++·算法·visual studio
失心疯_20234 小时前
Pycharm打开Terminal终端无法自动进入项目虚拟环境
ide·python·pycharm·虚拟环境·terminal
yi个名字5 小时前
从 Vibe Coding 到 MCP 智能体:在 IDE 里搭建可部署的工作流与 API 应用
ide·人工智能
Aevget5 小时前
「Java EE开发指南」如何在MyEclipse中开发EJB 2 Session Bean?(三)
java·ide·java-ee·开发工具·myeclipse
剽悍一小兔5 小时前
idea 执行测试类报错:failed to resolve org.junit.platform:junit-platform-launcher:1.8.2
java·ide·intellij-idea
SinFeeLoo_星凤楼5 小时前
Android Studio 中gradle.properties 中的中文注释显示乱码,如何解决?
android·ide·gradle·android studio·.properties
杰克崔6 小时前
vscode的缓存文件夹及查看进程读写的文件
ide·vscode·编辑器
MyBFuture16 小时前
C#接口与抽象类:关键区别详解
开发语言·c#·visual studio