Debug和Release编译方式的本质区别
来源:互联网 发布:中国河北网络电视 编辑:程序博客网 时间:2024/06/05 17:23
资料来源于网络。
Debug和Release编译方式的本质区别Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。
Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
Debug 和 Release 的真正秘密,在于一组编译选项。
下面列出了分别针对二者的选项
(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论) /MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库)
/Od 关闭优化开关
/D _DEBUG 相当于 #define _DEBUG,打开编译调试代码开关(主要针对 assert函数)
/ZI 创建 Edit and continue(编辑继续)数据库,这样在调试过 程中如果修改了源代码不需重新编译 /GZ 可以帮助捕获内存错误
/Gm 打开最小化重链接开关,减少链接时间 /MD /ML 或 /MT 使用发布版本的运行时刻函数库
/O1 或 /O2 优化开关,使程序最小或最快
/D NDEBUG 关闭条件编译调试代码开关(即不编译assert函数)
/GF 合并重复的字符串,并将字符串常量放到只读内存,防止 被修改
实际上,Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本
阅读全文
0 0
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- 1. Debug 和 Release 编译方式的本质区别
- Debug和Release编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- VC2005 Debug 和 Release 编译方式的本质区别
- Debug 和 Release 编译方式的本质区别
- vc Debug 和 Release 编译方式的本质区别
- MySQL之 INTERVAL
- 一些简单的操作符号
- Java图片处理开源框架(01)
- Redis入门
- 王爽.汇编.第三版.课程设计1.答案
- Debug和Release编译方式的本质区别
- jquery如何让所有表单元素均为只读
- 【剑指offer】题30:最小的k个数
- JQuery Ui 实例 W3Cschool
- Hive自定义UDF的JAR包加入运行环境的方法
- 软件工程课程设计问题总结——医院门诊系统(四):后台获取下拉列表的值并在页面中显示
- 单链表成环问题
- Docker镜像导出、导入
- mysql 5.7 安装及修改/重置密码