软件项目中Debug和Release版本之间的差异

有许多软件集成开发环境(IDE),例如VS(VC),IAR等,它们会在创建项目时自动生成Debug和Release版本。

一些朋友想知道,Debug和Release版本之间有什么区别?让我们谈谈Debug和Release版本及其相关内容之间的区别。

1关于Debug和Release版本顾名思义,Debug是调试版本。

发布,发布版本或最终发布版本。

在某些项目中,将有Debug和Release两个版本,例如:IAR EWARM:VS:一些初学者可能会问,两者之间有什么区别?实际上,Debug和Release的两个版本实际上在项目配置上是不同的。

让我们以IAR EWARM为例。

主要的是:项目->选项以下配置选项不同:2调试和发行版的区别调试和发行版的不同,最根本的区别在于,调试版具有更多与调试相关的配置内容。

1.生成调试信息调试版本通常生成调试信息,而Release通常不包含此类信息。

例如,IAR EWRAM:“ Generate debug information”这里实际上包含许多有关调试的信息。

如果选中,将有更多与调试有关的信息,例如“ .pbd”,“。

browse”,“。

linf”,“。

bowse”,“。

browse”和“ .linf”。

补充①“ .pbd”,& nbsp;“。

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在发行版中预定义了NDEBUG:当然,整个网络都可以根据其实际情况进行定义。

3.其他差异例如:在发行版下的bin命令中添加一些axf:在实际项目中,调试版和发行版可能有许多不同的配置。

理所当然的是,在“选项”下有许多配置。

可以不同。

3“版本”描述“版本”指的是“版本”。

这里提到的是指Debug and Release中的版本,而不是软件版本或任何其他版本。

调试和发行都是自配置的“版本”,但是一些IDE将自动生成这两个版本。

让我们以Keil和IAR来说明。

源代码和项目结构相同,但配置不同。

简而言之,它是“克隆”文件。

版本。

1.IAR& nbsp; EWARM项目->编辑配置:2.Keil MDK Project-Manage-& gt;项目项:END来源:StrongerHuang,作者StrongerHuang版权属于原始作者。

如果有任何侵权,请联系以将其删除。

免责声明:本文内容经21ic授权后发布,版权归原作者所有。

该平台仅提供信息存储服务。

本文仅代表作者的个人观点,并不代表该平台的立场。

如有任何疑问,请与我们联系,谢谢!

产品知识/行业、品牌资讯