
Visual Studio 中 Debug 和 Release 的区别;生成、清理项目、调试、开始执行等之间的区别
·
1. Debug 和 Release 的区别
Debug
:调试版本,包含调试信息,所以容量比Release
大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug
模式下生成两个文件,除了.exe
或.dll
文件外,还有一个.pdb
文件,该文件记录了代码中断点等调试信息 。Release
:发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。(调试信息可在单独的PDB文件中生成)。Release
模式下生成一个文件.exe
或.dll
文件。
实际上,Debug
和 Release
并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本。
2. 生成和重新生成
- 【生成】的时候只对你改动过的文件重新生成,没有改动过的文件不会重新生成;
- 【重新生成】是对所有的文件都重新生成。
以 cpp 为例,当你只改动某些 .cpp
之类的文件时,可以用生成,省了编译没有改动的那些文件的时间。但是改动了某些 .h
之类的文件最好用重新生成,因为有可能有些文件包含 .h
文件,也需要重新编译。
选择生成或生成解决方案,将只编译自上次生成以来更改过的那些项目文件和组件。
注意:
如果解决方案中包括多个项目,则【生成】命令将变成【生成解决方案】。
选择【重新生成解决方案】,将首先清理解决方案,然后生成所有项目文件和组件。
3. 清理项目和清理解决方案
选择【清理解决方案】将删除所有中间文件和输出文件,只留下项目文件和组件文件,之后可以从这些文件生成中间文件和输出文件的新实例。
【清理项目】,会清理项目生成的 ilk、pdb、exe 等文件。
4. 调试和开始执行(不调试)
启动调试:就是先生成解决方案再执行的。
开始执行(不调试):直接执行,只得到最终结果。
这两种方法的区别是,前者需要加载调试符号,允许在运行过程中中断,并单步执行,还可以对某些变量进行监控,甚至改变其代码并重新计算;后者仅仅编译并运行,无法对程序进行调试,仅适合在需要查看运行效果时使用。
【参考】:
VS Debug和Release版的区别
VS中生成、清理项目、调试、开始执行(不调试)、Debug 和 Release等之间的区别
更多推荐
所有评论(0)