码迷,mamicode.com
首页 > 其他好文 > 详细

OpenCV与Debug和Release模式

时间:2017-10-30 23:09:33      阅读:413      评论:0      收藏:0      [点我收藏+]

标签:优化   span   opencv   转换   标准库   pen   运行   size   time   

1、Release和Debug的区别
  Release版称为发行版,Debug版称为调试版。
  Debug中可以单步执行、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢。Release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。
  Release的exe文件链接的是标准的MFC DLL(Use MFC in a shared or static dll)。这些DLL在安装Windows的时候已经配置,所以这些程序能够在没有安装Visual C++的机器上运行。而Debug版本的exe链接了调试版本的MFC DLL文件,在没有安装Visual C++的机器上不能运行,因为缺相应的DLL,除非选择use static dll when link。

       Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把DebugRelease的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等。习惯上,我们仍然更愿意使用VC已经定义好的名称。
     Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则DebugRelease版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC Release库,编译时对应用程序的速度进行优化,而Debug则正好相反,它允许对源代码进行调试,可以定义和使用MFC的 诊断宏,采用MFC Debug库,对速度没有优化。
 既然DebugRelease仅仅是编译选项的不同,那么为什么要区分DebugRelease版本呢?
    DebugRelease,在我看来主要是针对其面向的目标不同的而进行区分的。Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。而Release
通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。

2、Opencv在Release和Debug下配置的区别
  上文已经说明Release和Debug的区别,所以Opencv在Debug和Release不同环境下都需要进行对应的配置的。
  另外我们需要注意,Opencv并不是Windows下标准库,所以它的DLL文件在安装Windows的时候并不会随之配置。也就是说Release和Debug环境下,Opencv库都有对应的Lib和DLL文件,我们在对应模式下都需要配置。并且在发行程序exe之后,随之的DLL文件也需要放置在同一文件夹中,否则程序会报错找不到对应的DLL文件。

 

 

 

参考于:

http://blog.csdn.net/FX677588/article/details/72622011

https://www.zhihu.com/question/24400428    知乎上的关于opencv debug和release版本的永久配置

http://blog.csdn.net/leo2007608/article/details/38963947    CSDNS上的opencv debug和release版本的永久配置

http://www.cnblogs.com/xujianqing/p/5356559.html    关于opencv转换debug和release版本出现的问题。

关于debug和release的问题,个人觉得还是分别建两个新项目属性OpencvDebug和OpencvRelease比较方便。

 

OpenCV与Debug和Release模式

标签:优化   span   opencv   转换   标准库   pen   运行   size   time   

原文地址:http://www.cnblogs.com/king-lps/p/7758050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!