Debug与Release版本的区别.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Debug与Release版本的区别.pdf

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 : “MyProje ct “logging “Debug “OptionTest.dll /INCREMENTAL Release 设置: 编译选项 :/O2 /GL /D NDEBUG /FD /MD /FoRelease ““ /Zi 链 接选项 :/OUT :D : “MyProje ct “logging “Release “OptionTest.dll /INCREMENTAL :NO Debug 版本 : /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 选项), Relas

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档