有許多軟件集成開發環境(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授權后發布,版權歸原作者所有。
該平臺僅提供信息存儲服務。
本文僅代表作者的個人觀點,并不代表該平臺的立場。
如有任何疑問,請與我們聯系,謝謝!