C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  117 Posts :: 2 Stories :: 61 Comments :: 0 Trackbacks

常用链接

留言簿(8)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

1、问题阐述

      在VC工程比较大时,开发的软件通常会出现在Debug状态下能够正常运行,而在Release状态下无法正常运行的情况。这种错误的检查的前提是要弄清二者之间本质的区别。

2、Debug和Release的区别

      ①Debug版本包含了大量的调试信息,所以形成的可执行文件要比Release版本大。

      ②二者根据选择的编译选项不同,需要的支持库也不同,如果是MFC的工程,则需要MFC42D.dll等库支持,而Release版本则需要MFC42.dll的支持。

      ③Release Build不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC Release库,编译是对应用程序的速度进行优化,而Debug Build则正好相反,它允许对源代码进行调试,可以定义和使用MFC的诊断宏,采用MFC Debug库,对速度没有优化。

      以上从现象上介绍了Debug版本和Release版本之间的区别,它们的本质区别在于一组编译的开关量的设置,编译时开关量如表2-2和表2-3所示

2-2 Debug版本编译选项表

编译选项

设置

/MDd

MSVCRTD.lib调试库链接

/MLd

LIBCD.lib调试库链接

/MTd

LIBCMTD.lib调试库链接

/Od

关闭优化开关

/D

打开编译器调试开关

/ZI

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

/GZ

可以帮助捕获内存错误

/Gm

打开最小化重链接开关,减少链接时

 

2-3 Release版本的编译选项表

编译选项

设置

/MD

MSVCRT.lib链接

/ML

LIBC.lib链接

/MT

LIBCMT.lib链接

/o1

最小化空间

/o2

最快速度

/D

设置为NDEBUG

/GF

启用字符串池

 

如果还想获得更多关于《Visual C++代码参考与技巧大全》的内容,可点击下面网址,http://www.cppblog.com/kangnixi/archive/2010/01/13/105591.html
posted on 2010-01-28 15:20 烟皑 阅读(2336) 评论(0)  编辑 收藏 引用 所属分类: 《Visual C++代码参考与技巧大全》学习笔记

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理