那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

IAR中 Debug 和 Release有何區別

strongerHuang ? 來源:strongerHuang ? 2023-05-22 10:54 ? 次閱讀

現在很多集成開發環境(IDE)在創建工程時都會自動生成有Debug 和 Release兩個版本(工程目標),比如VS(VC)、IAR等。 有些小伙伴比較納悶,Debug 和 Release兩個版本到底有什么區別? 下面就來講講Debug 和 Release版本區別,及其相關的內容。

關于Debug 和 Release版本

Debug,顧名思義,就是調試版本; Release,即發布版本,或者說最終釋放版本。 在一些項目中,會出現Debug 和 Release兩個版本,比如: IAR EWARM 30146f5a-f84b-11ed-90ce-dac502259ad0.png ? VS: 301e4052-f84b-11ed-90ce-dac502259ad0.png ? 一些初學者可能會問,他們二者到底什么差異? ? 其實,Debug 和 Release兩個版本其實主要就是工程配置不同。 ? 我們這里拿IAR EWARM來說,主要是:Project -> Options 下面的配置選項不同: 3027eae4-f84b-11ed-90ce-dac502259ad0.png

Debug 和 Release差異

Debug 和 Release兩個版本,最根本的區別在于Debug版本多了一些與調試相關的配置內容。 1.生成調試信息 Debug版本通常會生成調試信息,而Release通常沒有這些信息。 比如IAR EWRAM3031e71a-f84b-11ed-90ce-dac502259ad0.png ? 這里的“生成調試信息”其實包含了很多關于調試的信息,如果勾選會多出“.pbd”、?“.browse”、?“.linf”等與調試有關的信息。 ? 補充① “.pbd”、“.browse”為瀏覽信息的文件,“.linf”為鏈接配置相關的文件。具體可以參看:IAR系列教程12_IAR文件類型描述補充② 這個配置信息保存在“.ewp”(工程配置)文件下,包含了Debug 和 Release兩個版本的配置信息:


    Debug
  ...配置
  



    Release
  ...配置


你可以對比一下兩個配置的差異,就知道二者的一些區別: 3037f290-f84b-11ed-90ce-dac502259ad0.png ? 補充③ Keil MDK類似,也有類似的關于調試的配置:Projcet -> Options for Target: 30482796-f84b-11ed-90ce-dac502259ad0.png ? 2.預處理 Debug版本通常會有“DEBUG”相關的預處理(宏定義) 不知道大家經常用類似下面的調試宏定義沒有:
#ifdef DEBUG
//Debug調試版本相關的配置strongerHuang
#else
//Release發布版本相關的配置strongerHuang
#endif
比如最常見的就是printf(打印信息),會通過“DEBUG”調試信息打開/關閉打印輸出信息。 同理,這里與ASSERT斷言類似,就是通過宏定義開關來打開/關閉,比如:
#ifdefUSE_FULL_ASSERT
  void assert_failed(uint8_t* file, uint32_t line);
#else
  #define assert_param(expr) ((void)0)
#endif
IAR默認是在Release版本下預定義NDEBUG: 304fb36c-f84b-11ed-90ce-dac502259ad0.png ? 當然,這里全網可以自己根據自己實際情況進行定義。 ? 3.其他不同 比如:在Release版本下增加一些axf轉bin的命令30603c50-f84b-11ed-90ce-dac502259ad0.png ? 實際項目中,Debug 和 Release兩個版本可能還有很多不同的配置,按理說“Options”下面的很多配置都可以不同。 ?

“版本”說明

這里是說的“版本”是指Debug 和Release中的版本,并不是軟件版本或其他什么版本。 Debug 和Release都是自己配置的“版本”,只是有些IDE會自動生成這兩個版本。 還是拿Keil 和 IAR 來說明,源碼和工程結構都一樣,只是配置不一樣,簡單來說,就是一個“克隆”版本。 1.IAREWARM Project -> Edit Configuartions: 306b419a-f84b-11ed-90ce-dac502259ad0.png ? 2.KeilMDK Project - Manage ->Project items: 30715c10-f84b-11ed-90ce-dac502259ad0.png ? ?

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IAR
    IAR
    +關注

    關注

    5

    文章

    354

    瀏覽量

    36779
  • 配置
    +關注

    關注

    1

    文章

    189

    瀏覽量

    18458
  • DEBUG
    +關注

    關注

    3

    文章

    94

    瀏覽量

    19976

原文標題:IAR中 Debug 和 Release 區別是什么?

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenHarmony4.1Release無法運行debug應用問題分析

    1 關鍵字 debug; 4.1Release; 應用; 2 開發環境 系統版本: 4.1-Release DevEco Studio版本: 4.0 Release (build:4.
    發表于 03-27 14:27

    請問SYS/BIOS的ReleaseDebug區別

    ,UBL能夠加載并運行該APP(可以接收到預期的字符串);設置為Release模式后,設置好所include的文件路徑(CSLR),取消Debug所預定義的宏_DEBUG,編譯并轉換為hex通過UBL
    發表于 07-25 09:17

    請問CCS5.4工程設置的Build configurations->Set active里面的DebugRelease模式什么區別

    各位大蝦,請教一個CCS5.4的調試問題。CCS5.4工程設置的Build configurations->Set active 里面的DebugRelease模式什么區別
    發表于 01-15 06:32

    請問DebugRelease區別是什么?

    寫了一段在FLASH運行的程序,結果是在Debug模式下編譯的程序可以正常運行,而Release模式下編譯的程序卻運行有誤。請問:1、Debug
    發表于 06-17 09:28

    IAR下的匯編指令SFB和SFE什么作用呢

    IAR下的匯編指令SFB和SFE什么作用呢?arm匯編的跳轉指令哪幾種?區別呢?
    發表于 01-27 06:36

    請問如何在RT-Thread studio的debugrelease模式設置各自的宏定義

    大家好!請問如何在RT-Thread studio的debugrelease模式設置各自的宏定義,我在debug模式下設置了一個DEBUG
    發表于 07-26 11:15

    RT-Thread debugrelease模式如何設置不同的宏定義?

    大家好!請問如何在RT-Thread studio的debugrelease模式設置各自的宏定義,我在debug模式下設置了一個DEBUG
    發表于 02-10 14:44

    DVR和NVR區別 誰將最終占領市場?

    DVR和NVR區別 誰將最終占領市場?
    發表于 12-27 22:19 ?0次下載

    軸向和徑向磁鐵極化區別

    在我們網站的『磁體—多用途』產品類別,列有兩種磁鐵極化類型——軸向和徑向。這兩種極化的區別?本文將做一個簡要的說明。
    的頭像 發表于 04-02 15:35 ?9391次閱讀

    ZigBee 與 Z-Wave:區別

    ZigBee 與 Z-Wave:區別
    的頭像 發表于 01-03 09:45 ?1945次閱讀
    ZigBee 與 Z-Wave:<b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區別</b>?

    接地基礎知識:PE 和 FG 區別

    接地基礎知識:PE 和 FG 區別
    的頭像 發表于 03-10 15:07 ?1.5w次閱讀
    接地基礎知識:PE 和 FG <b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區別</b>?

    異構集成 (HI) 與系統級芯片 (SoC) 區別

    異構集成 (HI) 與系統級芯片 (SoC) 區別
    的頭像 發表于 11-29 15:39 ?2487次閱讀
    異構集成 (HI) 與系統級芯片 (SoC) <b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區別</b>?

    光耦與光繼電器區別

    光耦與光繼電器區別
    的頭像 發表于 12-13 13:59 ?975次閱讀
    光耦與光繼電器<b class='flag-5'>有</b><b class='flag-5'>何</b><b class='flag-5'>區別</b>?

    什么是MPLS?特點?與SD-WAN區別

    什么是MPLS?特點?與SD-WAN區別? MPLS是多協議標簽交換的縮寫,是一種網絡傳輸協議。它被設計用于提高數據包轉發的速度和效
    的頭像 發表于 12-27 14:09 ?791次閱讀

    為什么我的項目Debug運行沒問題,編譯成Release包就報錯?

    引言 在Android開發debug包和release包的行為差異可能導致release包在運行時出現問題,而這些問題在debug
    的頭像 發表于 06-12 11:18 ?1162次閱讀
    為什么我的項目<b class='flag-5'>Debug</b>運行沒問題,編譯成<b class='flag-5'>Release</b>包就報錯?
    足球百家乐官网投注计算| 财富百家乐官网的玩法技巧和规则| 7位百家乐官网扑克桌| 百家乐合作| 百家乐官网投注打三断| 百家乐视频双扣| 大发888注册送58元| 百家乐官网澳门百家乐官网澳门赌场| 百家乐的技术与心态| bet365娱乐场注册| 至尊百家乐官网奇热网| 代理百家乐免费试玩| 新葡京娱乐场| 旅百家乐官网赢钱律| 十六浦娱乐城信誉| 嘉年华百家乐官网的玩法技巧和规则 | 百家乐国际娱乐场| 百家乐官网出租平台| 百家乐优博娱乐城| 牟定县| 太阳城百家乐优惠| 六合彩资料大全| 百家乐官网群shozo| 博盈国际娱乐城| 百家乐娱乐城返水| 鼎龙娱乐城| 临汾玩百家乐的人在那里找| 赌博启示录| 百家乐棋牌交友中心| 新郑市| 百家乐园游戏77sonci...| 百家乐官网平玩法lm0| 百家乐斗地主| 百家乐官网赌经| 威尼斯人娱乐老牌网站| 香港百家乐官网马书| 大发888信誉888娱乐城| 茅台百家乐官网的玩法技巧和规则 | 百家乐官网有几种玩法| 时时博百家乐的玩法技巧和规则 | 百家乐官网怎么刷反水|