VS系列软件中debug和release编译环境有什么区别

当编译和执行一个工程时,可以在Debug和Release两种配置下执行。

Debug模式用于调试程序,这是个受保护的运行环境,它将告诉你程序是否有泄露,在运行时也能对特定函数的结果进行检查。然而它生成的可执行文件运行较慢。因此当你的应用经过测试准备投入使用时,你应该在Release模式下进行编译,这将生成供最终用户使用的可执行文件。简单的说就是Debug下可以进行调试,查bug,改错,且运行较慢。

虽然Release下也可以打断点,但是有时候有些变量的值在Release下是看不见的。调试的话应该用Debug。注意:经常发生Debug模式下运行正常而Release模式出错的情况,因此要进行更多测试来找到潜在的Bug。
参考《OpenCV计算机视觉编程手册》

转自:https://zhidao.baidu.com/question/360952873348636932.html
时间: 2024-10-13 02:34:52

VS系列软件中debug和release编译环境有什么区别的相关文章

VS中的Debug 和 Release 编译方式的本质区别

VS中的Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用. Debug 和 Release 的真正秘密,在于一组编译选项.下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论) 以下参数均是在project

Debug 和 Release 编译方式的本质区别

Debug   通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release   称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用.   Debug   和   Release   的真正秘密,在于一组编译选项.下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd   /Fo,但区别并不重要,通常他们也不会引起   Release   版错误,在此不讨论)       Debug   版本:       /M

[转]Debug 和 Release 编译方式的区别

本文主要包含如下内容: 1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错3. 怎样"调试" Release 版的程序Debug 和 Release 编译方式的本质区别    Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用.    Debug 和 Release 的真正秘密,在于一组编译选

VS中 Debug和Release版本的区别

VS Debug和Release版本的区别 1. 变量.大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc(注1),而release的赋值近似于随机(我想是直接从内存中分配的,没有初始化过).这样就明确了,如果你的程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致:用作数组下标将会使程序崩溃:更加可能是造成其他变量的不准确而引起其他的错误.所以在声明变量后马上对其初始化一个默认的值是最简单有效的办法

Visual Studio中Debug与Release以及x86、x64、Any CPU的区别

Visual Studio中Debug与Release的区别: 在Visual Studio中,编译模式有2种:Debug与Release.这也是默认的两种方式,在新建一个project的时候,就已经存在这两种模式供选择. Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.      Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用. SO:      一般都是用Release来打包发布程序,因为Re

Visual Studio中Debug和Release的区别

在Visual Studio中,生成应用程序的时候有2种模式:Debug和Release.两者之间如何取舍呢? 假设有这么简单的一段代码,在主程序中调用方法M1,M1方法调用M2方法,M2方法调用M3方法,M3方法中抛出异常. class Program { static void Main(string[] args) { M1(); Console.ReadKey(); } static void M1() { M2(); } static void M2() { M3(); } stati

CMAKE设置VS工程中Debug和Release不同的输出名称

CMAKE在管理工程时,需要同时编译Debug和Release版本,但是两个版本输出的文件无论是lib还是dll,名称都是是完全相同. 如果要输出在同一个目录中是非常麻烦的,非常容易混淆,可以使用以下命令设置debug和Release输出文件后缀的方式进行区分: if(WIN32 AND NOT MINGW) if(NOT DEFINED CMAKE_DEBUG_POSTFIX) set(CMAKE_DEBUG_POSTFIX "_debug") endif() if(NOT DEFI

vs中的程序有debug和release两个版本的区别

vs中的程序有debug和release两个版本,Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发 人员提供强大的应用程序调试能力.而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试.所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优.为用户的使用提供便利. debug程序通常比release程序要慢,尤其是处理视频方便release要比debug快很多. debug跟rele

(原)Vs中debug和release结果不一致

转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5598091.html 前两天调试程序,出现了一个很蛋疼的问题,debug和release结果不一致.网上很多都说是变量没有初始化,但是我这边变量已经初始化了. 最后仔细检查,找到了debug和release下代码结果不一致的地方.将该部分代码提取并简化,如下所示: int MatrixPlusDiagVec(float* pMat, const float* pVec, int dim) { for