debug和release版本的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了debug和release版本的区别相关的知识,希望对你有一定的参考价值。

Debug版本就是调试版本,Visual
C++
6.0默认的就是Debug版本。在Debug版本中,可以使用单步执行、跟踪等功能,但其生成的可执行文件比较大,代码运行比较慢。Release版本就是发行版本,其运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。
还有一点,Release版本的exe文件链接的目标是标准的MFC
DLL(Use
MFC
in
a
shared
or
static
dll)。比如MFC42.DLL。这些DLL在安装windows的时候,就会装到系统中。因此,这样的exe在没有安装Visual
C++
6.0的机器上也能运行。而Debug版本的exe链接了调试版本的MFC
DLL文件,比如MFC42.DLL。在没有安装Visual
C++
6.0的机器上不能运行,因为缺少MFC42D.DLL等,除非选择use
static
dll
when
link。
Debug版本中包含大量的调试信息,所以我们能够单步执行、Watch表达式等等,而release版本仅包含我们的代码。由于要利于程序的测试,Debug版本的程序附带很多测试信息和测试程序时才需要的代码,所以Debug版本的程序需要VC的Debug(注意这里不是指程序的Debug,而是指VC的调试器)才能运行。而Release版本就不具有这些特性,所以在Release版本的程序上不能做调试!打包就相当于将你制作的东西发布出去,应该是优化过的代码,当然要用发布版本,即Release版本。
两者所用的动态连接库是不一样的,Release版本所需要的dll和lib已经包含在Windows的system(或者system32)下,所以只需要拷贝就可以运行了,但是Debug版本需要的dll和lib是在安装vc时装上去的,如果你想直接将debug版本给用户,需要拷贝几个文件,但这样显得很臃肿,一般来说不可取。
参考技术A debug版本包含调试信息,编译器生成的代码方便调试
release版本算是发布版本,release下不能调试,生成的文件更小,编译器生成的程序速度更快

以上是关于debug和release版本的区别的主要内容,如果未能解决你的问题,请参考以下文章

VC中release和debug版本的区别?

debug和release 模式有啥区别

vs中debug和release版本的区别

vs中debug和release版本的区别

Debug和Release有啥区别

android studio release和debug的区别