标签:编译 开关 Delphi Release Debug 代码 调试
Delphi XE Debug 和 Release 的区别
1、概念
- Debug 通常称为调试版本,它包含调试信息,可以单步执行、断点、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢,可以说不作任何优化,主要作用是便于程序员调试程序。
- Release 通常称为发布版本,它往往是对源代码进行了各种优化,使得程序在代码大小和运行速度上都得到最优,以便用户很好地使用,但在这种模式下,无法执行调试功能。
2、编译选项区别:
2.1 Debug
- /MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库)
- /Od 关闭优化开关
- /D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关(主要针对assert函数)
- /ZI 创建 Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译
- GZ 可以帮助捕获内存错误
- /Gm 打开最小化重链接开关,减少链接时间
2.2 Release
- /MD /ML 或 /MT 使用发布版本的运行时刻函数库
- /O1 或 /O2 优化开关,使程序最小或最快
- /D "NDEBUG" 关闭条件编译调试代码开关(即不编译assert函数)
- /GF 合并重复的字符串,并将字符串常量放到只读内存,防止被修改
/Fd /Fo的区别在这里并不重要
3、代码判断状态
begin {$IFDEF DEBUG} //Debug状态下 执行代码 {$ENDIF} {$IFDEF RELEASE} //Release 状态下 执行代码 {$ENDIF} end;
创建时间:2022.04.29 更新时间:
标签:编译,开关,Delphi,Release,Debug,代码,调试 来源: https://www.cnblogs.com/guorongtao/p/16205332.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。