软件项目中Debug和Release版本之间的差异
1
作者|嵌入式专栏有很多软件集成开发环境(IDE),例如VS(VC),IAR等,在创建项目时,有两个版本的Debug和Release:自动生成。
一些朋友想知道,Debug和Release版本之间有什么区别?让我们谈谈Debug和Release版本及其相关内容之间的区别。
关于Debug和Release版本顾名思义,Debug是调试版本。
发布,发布版本或最终发布版本。
在某些项目中,将有Debug和Release两个版本,例如:IAR EWARM:VS:一些初学者可能会问,两者之间有什么区别?实际上,Debug和Release的两个版本实际上在项目配置上是不同的。
这里我们以IAR EWARM为例,主要是:选项以下配置选项不同:调试和发行版的区别调试和发行版的不同,最根本的区别在于,调试版具有更多与调试相关的配置内容。
1.生成调试信息调试版本通常生成调试信息,而Release通常不包含此类信息。
例如,IAR EWRAM:“ Generate debug information”这里实际上包含许多有关调试的信息。
如果选中,将有更多与调试有关的信息,例如“ .pbd”,“。
browse”,“。
linf”。
附录①“ .pbd”,“。
browse”是用于浏览信息的文件,“。
linf”是与链接配置有关的文件。
有关详细信息,请参阅:IAR系列教程12_IAR文件类型说明。
补充②该配置信息保存在“ .ewp”目录下。
(工程配置)文件,其中包含Debug和Release版本的配置信息:< configuration& gt; & lt; name& gt; Debugname& gt; ...配置配置<配置& gt; & lt;名称& gt;发布名称& gt; ...配置配置您可以比较这两种配置之间的差异,并且您会知道其中的一些差异:补充③Keil MDK相似,并且调试配置也相似:Projcet-& gt;目标的选项:2.预处理调试版本通常具有“ DEBUG”。
相关的预处理(宏定义)我不知道您是否经常使用如下的调试宏定义:#ifdef DEBUG //调试与调试版本相关的配置strongHuang#else // /发布与版本相关的配置strongHuang#endif例如,最常见的是printf(打印信息),它将通过“ DEBUG”打开/关闭打印输出信息。
调试信息。
同样,这类似于ASSERT断言,该断言通过宏定义开关打开/关闭,例如:#ifdef USE_FULL_ASSERT void assert_failed(uint8_t * file,uint32_t line);#else #define assert_param(expr)( (void)0)#endifIAR缺省是在Release版本下预定义NDEBUG:当然,整个网络都可以根据其实际情况进行定义。
3.其他差异例如:在发行版下的bin命令中添加一些axf:在实际项目中,调试和发行版可能具有许多不同的配置。
理所当然的是,在“选项”下有许多配置。
可以不同。
“版本”描述“版本”指的是“版本”。
这里提到的是指“调试和发布”中的版本,而不是软件版本或任何其他版本。
调试和发布都是“版本”。
自行配置,但某些IDE会自动生成这两个版本。
让我们以Keil和IAR来说明。
源代码和项目结构相同,但配置不同。
简而言之,它是“克隆”文件。
版本。
1.IAR& nbsp; EWARM项目->编辑配置:2.Keil MDK项目-管理-项目:免责声明:本文的内容经21ic授权后发布,版权归原作者所有。
该平台仅提供信息存储服务。
本文仅代表作者的个人观点,并不代表该平台的立场。
如有任何疑问,请与我们联系,谢谢!