VS中的多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)的区别(转载)
转载链接https://blog.csdn.net/qq_33757398/article/details/82156956
一种语言的开发环境往往会附带有语言库,这些库就是对操作系统的API的包装,我们也称这些语言库为运行库
对于MSVC的运行库(CRT),按照静态/动态链接,可以分为静态版和动态版;按照调试/发布,可以分为调试版本和发布版本;按照单线程/多线程,可以分为单线程版本和多线程版本(但是目前VS中已不提供单线程版本了)
在调试模式下,使用调试运行库:多线程调试(/MTd)、多线程调试DLL(/MDd)
在发布模式下,使用发布运行库:多线程(/MT)、多线程DLL(/MD)
调试模式下运行库带d,但发布模式不带。调试与发布的区别在于,发布模式省略了程序的调试信息,简单来说就是删除了调试模式下的用于调试的内容,所以一般情况下,发布模式下生成的可执行文件的大小比调试模式下生成的要小
静态链接:多线程(/MT)、多线程调试(/MTd)
动态链接:多线程DLL(/MD)、多线程调试DLL(/MDd)
动态链接为D,静态链接为T。两者的区别在于,静态链接将程序所依赖的运行库集成到了可执行文件中,可执行文件运行时不再需要运行库;动态链接没有把程序所依赖的运行库集成到可执行文件中,可执行文件运行时需要运行库。由于静态链接将程序所依赖的运行库集成到了可执行文件中,一般情况下,生成的可执行文件的大小大于动态链接生成的
对这四种运行库的选在位于VS的项目属性-》C/C+±》代码生成-》运行库:
实例
源码:
#include
using namespace std;
int main()
{
cout << “Hello World!” << endl;
system(“pause”);
return 0;
}
(以下实验均在Win10+VS2017下完成)
Win32、debug模式下:
Win32、release模式下:
我们可以发现,在同种模式下,动态链接小于静态链接;在同种链接下,release模式小于debug模式
在x64、debug模式下:
在x64、release模式下:
同种模式和链接下,x64下生成的可执行文件大小大于Win32下生成的
————————————————
版权声明:本文为CSDN博主「深山里的小白羊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33757398/article/details/82156956
VS中的多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)的区别(转载)相关推荐
- VC调试选项说明:md /mdd /ml /mt/mtd
VC调试选项说明:md /mdd /ml /mt/mtd 1. VC编译选项 多线程 (/MT) 多线程调试 ...
- 多线程MT和多线程MD的区别
多线程MT加载的是静态运行时库,属于C语言版本:而多线程MD版本加载是动态运行时库,属于微软版本.在工程属性窗体中选择配置属性,C++选项的代码生成多线程调试 DLL (/MDd)和多线程调试 DLL ...
- 关于多线程MT和MD的区别。
/MD./MT的选择 1.为什么选择/MD,不选/MT? (1)程序就不需要静态链接运行时库,可以减小软件的大小: (2)所有的模块都采用/MD,使用的 ...
- 转载 关于多线程MT和MD的区别。
这段时间司在招实习生,而不管是远程的电话面试或者是实际现场面试中领导都喜欢问你这个问题,但是可惜的是能很好答上来的人很少.后来发现不管是应届的实习生,甚至有些实际参加工作几年的人也未必真的了解这个问题 ...
- 详解多线程MT和多线程MD的区别
区别1:全局堆句柄不一样. 网上有一个说法,就是一个线程一个栈,一个模块一个堆.前者很容易有理解,每个线程创建的时候在CreateThread中都能制定默认栈大小,只是很多情况下都取了默认值.而一个模 ...
- 详解多线程MT 和 MD
今天看到一篇帖子,对此方面解释的不错,再此记录一下: 区别1:全局堆句柄不一样. 网上有一个说法,就是一个线程一个栈,一个模块一个堆.前者很容易有理解,每个线程创建的时候在CreateThread中都 ...
- oracle 12c 多线程,Oracle 12c(12.1)中性能优化功能增强之通过参数THREADED_EXECTION使用多线程模型...
1. 后台 UNIX/Linux系统上,Oracle用多进程模型.例如:linux上一个常规安装的数据库会有如下进程列: $ ps -ef | grep [o]ra_ oracle 15356 ...
- MTD/MT/MDD/MD以及LIB/DLL之间的一些联系和问题
这个话题要从哪里说起呢.博主小白一个,最近调试程序时(WIN-MSVC)连一些基本问题都没弄懂,本着遇见问题一定要解决的原则,下面来说下MTD/MT/MDD/MD以及LIB/DLL之间的一些联系和问题 ...
- visual studio运行时库MT、MTd、MD、MDd 的区别
msdn上面的解释: MT:mutithread,多线程库,编译器会从运行时库里面选择多线程静态连接库来解释程序中的代码,即连接LIBCMT.lib库 MTd:mutithread+debug,多线程 ...
- mysql.lib 是mtd mdd_MTD/MT/MDD/MD以及LIB/DLL之间的一些联系和问题
这个话题要从哪里说起呢.博主小白一个,最近调试程序时(WIN-MSVC)连一些基本问题都没弄懂,本着遇见问题一定要解决的原则,下面来说下MTD/MT/MDD/MD以及LIB/DLL之间的一些联系和问题 ...
最新文章
- shell中的特殊变量
- 医疗卫生信息化 医学信息 医疗信息化 医院管理 资料下载
- 解读4G发牌事件,了解下4G那点事!
- 1.什么是数据化运营——《数据挖掘与数据化运营实战》
- ustc小道消息20211229
- Qt中qDebug()技巧初探
- proteus三输入与非门名字_Proteus仿真库元件名大全
- asp.net 按钮单击事件问题(自动弹出新窗口)
- 魔力转圈圈(快速幂)
- 《推荐系统笔记(十四)》矩阵分解(MF)以及基于矩阵分解的topN推荐
- jquery-easyui中表格的行编辑功能
- MySQL 双主单写,主库偶尔出现大量延迟的原因
- java 鱼刺图_鱼刺卡喉咙,喝醋、吃馒头吞饭有用吗?答案全在这
- 逍遥魔兽手动打开mysql_逍遥魔兽gm命令使用
- TPU 使用TPU训练tensorflow初探(Colab)
- 何为裂变?上百个裂变营销活动让我揭开了其神秘面目!
- PC机装Openwrt19.07做BT下载机的详细配置
- 毕业设计 python的微信公众平台机器人
- tws耳机哪个品牌好?2023年tws耳机排行
- 离散数学-10 群与环
热门文章
- Delphi--过程和函数
- mysql统计功能和数据库information_schema/performance_schema
- SpringMVC框架----RequestParam注解和RequestBody注解
- Spring框架----自动按照类型注入的Autowired注解
- POJ 2762Going from u to v or from v to u?(强联通 + 缩点 + 拓扑排序)
- (1)变量、常量、程序交互、数据类型、bool、基本运算符
- 20162303 队列加分项-杨辉三角
- 基于HttpClient4.0的网络爬虫基本框架(Java实现)
- HDU 3952 Fruit Ninja
- 虚拟化文件服务器,vmware服务器虚拟化项目实施文档(1)