Debug和Release有什么区别?
转载:  
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release   Build不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC   Release库,编译十对应用程序的速度进行优化,而Debug   Build则正好相反,它允许对源代码进行调试,可以定义和使用MFC的诊断宏,采用MFC   Debug库,对速度没有优化。

一、Debug   和   Release   编译方式的本质区别  
Debug   通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release   称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。  

Debug   和   Release   的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd   /Fo,但区别并不重要,通常他们也不会引起   Release   版错误,在此不讨论)  

Debug   版本:  
/MDd   /MLd   或   /MTd   使用Debug runtime library(调试版本的运行时刻函数库)

/Od   关闭优化开关  

/D "_DEBUG"相当于#define _DEBUG,打开编译调试代码开关(主要针对assert函数)  

/ZI   创建Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译

/GZ   可以帮助捕获内存错误  
/Gm   打开最小化重链接开关,减少链接时间  

Release   版本:    

相关文章:

  • 2022-02-18
  • 2022-03-07
  • 2021-10-29
  • 2022-12-23
  • 2021-09-06
  • 2021-07-15
  • 2022-12-23
猜你喜欢
  • 2021-09-01
  • 2021-09-16
  • 2022-12-23
  • 2021-10-14
  • 2022-01-21
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案