- 3
- 0
- 约1.13万字
- 约 20页
- 2017-02-09 发布于重庆
- 举报
Debug与Release版本的区别详解
Debug与Release版本的区别详解
Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等。习惯上,我们仍然更愿意使用VC已经定义好的名称。 Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC Release库,编译时对应用程序的速度进行优化,而Debug则正好相反,它允许对源代码进行调试,可以定义和使用MFC的 诊断宏,采用MFC Debug库,对速度没有优化。 既然Debug和Release仅仅是编译选项的不同,那么为什么要区分Debug和Release版本呢? Debug和Release,在我看来主要是针对其面向的目标不同的而进行区分的。Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。 下面仅就默认的Debug和Release版本的选项进行 比较,详细的编译选项可以看MSDN的说明。 我们将默认的Debug和Release的选项设置进行比较,过滤掉相同设置,主要的不同如下:编译选项:/Od /D _DEBUG /Gm /RTC1 /MDd /FoDebug““ /ZI链接选项:/OUT:D:“MyProject“logging“Debug“OptionTest.dll /INCREMENTALRelease设置:编译选项:/O2 /GL /D NDEBUG /FD /MD /FoRelease““ /Zi链 接选项:/OUT:D:“MyProject“logging“Release“OptionTest.dll /INCREMENTAL:NODebug 版本: /MDd /MLd 或 /MTd使用 Debug runtime library(调试版本的运行 时刻函数库)/Od 关闭优化开关 /D _DEBUG 相当于 #define _DEBUG,打开编译调试代码 开关(主要针对assert函数)/ZI 创建 Edit and continue数据库,在调试 过程中如果修改了源代码不需重新编译/GZ 可以帮助捕获内存错误 /Gm 打开最小化重链接开关,减少链接时 间 Release 版本: /MD /ML 或 /MT使用发布版本的运行时刻函数库 /O1 或 /O2优 化开关,使程序最小或最快 /D NDEBUG 关闭条件编译调试代码开关(即不编译assert函数)/GF 合并重 复的字符串,并将字符串常量放到只读内存,防止被修改 MDd与MD 首先,Debug版本使用调试版本的运行时库(/MDd选项),Relase版本则使用的是发布版本的运行时库(vcrt.dll)。其区别主要在于运行时的性能影响。调试版本的运行时库包含了调试信息,并采用了一些保护机制以帮助发现错误,也因此,其性能不如发布版本。编译器提供的Runtime Library很稳定,不会造成Release版本错误,倒是由于Debug版本的Runtime Library加强了对错误的检测,如堆内存分配检查等,反而会报告错误,应当指出,如果Debug有错误,而Release版本正常,程序肯定是有Bug的,只是我们还没有发现。ZI与Zi 其次,/ZI选项与/Zi选项。通过使用/ZI选项,可以在调试过程修改代码 而不需要重新编译。这是个调试的好帮手,可如果我们使用Release版本,这将变得不可行。Od与O2 /O2与/Od选项:Od是关闭编译器优化,普遍用于Debug版本。而O2选项是创建最快速代码,这当然是Release版本的不二选择。RTCx选 项 /RTCx选项让编译器插入动态检测代码以帮助你检测程序中的错误。比如,它会将局部变量初始化为非零值。包括用0xCC初始化所有自动变量,0xCD初始化堆中分配的内
您可能关注的文档
- C物业企业的公司发展战略研究.doc
- C的多线程机制探索.doc
- c楼满堂脚手架施工方案.doc
- C的十个经典案例.doc
- C碳排放约束下的江苏省煤炭需求预测(苏北赛题).doc
- C的企业人事管理系统的设计与实现.doc
- C程序的外部变量与函数.doc
- C碳排放约束下的江苏省煤炭需求预测.doc
- C程序设计基础》模拟考试题(题目).doc
- C程序设计实验报告(完整版).doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 四川省2025年中考数学真题试卷十五套附答案.pdf VIP
- 《数据库原理与应用》课程标准.pdf VIP
- 本科论文毕设-基于JAVA酒店管理系统毕业设计论文.doc VIP
- 2025年德州职业技术学院单招笔试数学试题库含答案解析.docx VIP
- 氟化物微纳复合玻璃与透明陶瓷:设计原理、制备工艺与性能研究.docx VIP
- 2025海上风电系统智能运维的数字孪生技术(英文).pdf VIP
- 2025年德州职业技术学院单招《数学》真题(重点)附答案详解.docx VIP
- 牵引供电变电所-分区所-AT所.pdf VIP
- 投标产品质量、供货、售后服务、残次品退换承诺方案.docx VIP
- 子宫肌瘤的诊治中国专家共识解读.docx VIP
原创力文档

文档评论(0)