基本主流IDE都有該功能選項例如Keil MDK, IAR, Eclipse, VS等, 這里使用STM32CUBEIDE來舉例
創建STM32CUBEIDE工程后默認有2個目標選項 Debug / Release.
它們的主要作用是區分不同目標(如Debug和Release)中的編譯選項/預處理符號定義/測試文件的添加與否等進行統一管理.
一. 使用場景:
-
在開發階段為了減少編譯優化造成的一系列問題, 我們往往將編譯器優化等級設置為最低. 正式發布版一般來說會將優化等級進行提升.即Debug中低優化, Release中高優化.
-
在嵌入式開發過程中我們還需要進行大量的硬件測試, 算法驗證等. 有些測試並不需要包含在正式的發布程序中. 即Debug中需要包含測試程序, Release中不需要.
-
再者有時中間會臨時制作一版用於客戶現場測試等等, 這時候相當於我們需要維護的版本已經不止一個. 即Debug/Release/Release_R1/_R2/_R3...
二. STM32CUBEIDE中默認Debug / Release的配置區別
(以下區別不代表所有)
- Debug工程中默認預處理符號有 DEBUG, 如下:

- 默認編譯器的優化等級設置不一樣
Debug目標:

Release目標:

三. 如何新建
在工程名右鍵->Properties



點擊New 進行新建

Name 中填寫你要創建的目標名, Existing configuration 選項決定你將要基於該目標已有的配置.
四. 選擇你的工程

五. 為目標添加不同的參數選項
我們可以在不同的目標中添加不同的編譯選項, 設置不同的優化級別, 定義預處理符號, 甚至添加不同的文件結構.
- 例如我們在目標中添加一些預處理符號(宏開關).

-
使用不同的工具鏈版本:

等等.
六. 注意事項
默認情況下IDE一般選擇的都是Debug目標. 很多人甚至不知道有Debug/Release的選項和區別,
從而使用Debug作為發布程序. 這在一般的項目中可能並沒有問題, 但這不是一個好的做法.
