0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

應(yīng)用筆記|巧用 STM32CubeIDE 之編譯警告

STM32單片機(jī) ? 來(lái)源:未知 ? 2023-06-29 17:35 ? 次閱讀

關(guān)鍵字:STM32CubeIDE,warning,編譯警告

目錄預(yù)覽

1 前言2 巧用 warning3 小結(jié)

1. 前言

編譯警告對(duì)于工程師們來(lái)說(shuō),是再常見(jiàn)不過(guò)的東西了。對(duì)于嚴(yán)謹(jǐn)?shù)墓こ處焸?,任?warning 都是不會(huì)忽視的。

2. 巧妙使用 warning

在 STM32CubeIDE 中可以通過(guò)warning(甚至 error)的方式來(lái)通知工程師,使得一些容易遺漏的配置得到重視。

例如,在釋放參考代碼給客戶時(shí),希望客戶注意到里面的項(xiàng)目名稱和項(xiàng)目版本,那么我們可以在代碼中,通過(guò)“#error ”來(lái)強(qiáng)調(diào)必須要修改的信息,通過(guò)“#warning”來(lái)備注需要注意的信息。具體代碼如圖 1:

078b9332-1660-11ee-962d-dac502259ad0.png

這樣,當(dāng)客戶編譯工程時(shí),會(huì)出現(xiàn) error 和 warning,見(jiàn)圖 2,只有將“#error”和“#warning”兩行分別注釋掉,才會(huì)分別消除這兩項(xiàng)編譯信息,以此達(dá)到警示客戶的目的。

07ab9d4e-1660-11ee-962d-dac502259ad0.png

2.1. 主動(dòng)屏蔽特定的 warning

在有些場(chǎng)景,我們還可以在特定的代碼或者文件作用域內(nèi),主動(dòng)屏蔽特定的warning。

例如,工程中寫了一個(gè)測(cè)試函數(shù)“void MyTestFunction(void)”,但是在工程中暫時(shí)沒(méi)有被調(diào)用,直接編譯會(huì)得到“Wunused-function”的 warning。

但是如果在代碼中添加這樣的語(yǔ)句:

#pragma GCC diagnostic ignored "-Wunused-function"。

/*此區(qū)間內(nèi),如果出現(xiàn)函數(shù)僅申明,但是沒(méi)有被調(diào)用時(shí),編譯不產(chǎn)生warning*/voidMyTestFunction(void){…}

#pragma GCC diagnostic pop

因?yàn)槲覀兣渲昧恕?Wunused-function”,那么在編譯時(shí),即使 MyTestFunction 沒(méi)有被調(diào)用,編譯也不產(chǎn)生 warning。

我們還可以在 STM32CubeIDE 中,通過(guò)“Help”->“Information Center”->“Read STM32CubeIDE Documentation”->“C/C++ Compiler”,找到 GCC 編譯器文檔,從而發(fā)現(xiàn)更多的 warning 選項(xiàng),根據(jù)需要主動(dòng)屏蔽更多的 warning。見(jiàn)圖 3 :

07e032f2-1660-11ee-962d-dac502259ad0.png

3. 小結(jié)

事實(shí)上,在編譯項(xiàng)目時(shí),warning 和 error 同樣重要,部分隱蔽的問(wèn)題可能就和warning 相關(guān)。當(dāng)我們對(duì)工程代碼和編譯器有了更深層次的了解后,可以巧妙地使用和屏蔽 warning,幫我們更好地管理項(xiàng)目。

完整內(nèi)容請(qǐng)點(diǎn)擊“閱讀原文”下載原文檔。

080f357a-1660-11ee-962d-dac502259ad0.png

長(zhǎng)按掃碼關(guān)注公眾號(hào)

更多資訊,盡在STM32

點(diǎn)擊“閱讀原文”,可下載原文檔


原文標(biāo)題:應(yīng)用筆記|巧用 STM32CubeIDE 之編譯警告

文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44569

    瀏覽量

    636128
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10905

    瀏覽量

    356449

原文標(biāo)題:應(yīng)用筆記|巧用 STM32CubeIDE 之編譯警告

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    巧用編譯編譯警告

    STM32CubeIDE中,我們可以通過(guò)主動(dòng)warning(甚至error)的方式來(lái)通知工程師,使得一些容易遺漏的配置得到重視。例如,在釋放參考代碼給客戶時(shí),希望客戶注意到里面的項(xiàng)目名稱和項(xiàng)目版本
    的頭像 發(fā)表于 08-30 11:46 ?348次閱讀
    <b class='flag-5'>巧用</b><b class='flag-5'>編譯</b>器<b class='flag-5'>之</b><b class='flag-5'>編譯</b><b class='flag-5'>警告</b>

    STM32CubeIDE編譯工程報(bào)錯(cuò)如何解決?

    :SoftWoreSTM32_Cube_IDESTM32CubeIDEpluginscom.st.stm32cube.ide.mcu.externaltools.make.win32_2.1.300.202402091052toolsbinsh.exe, C:/SoftWore/
    發(fā)表于 07-23 07:06

    stm32cubeIDE燒錄報(bào)錯(cuò)Error是怎么回事?

    請(qǐng)問(wèn)各位前輩 , stm32cubeIDE 燒錄報(bào)錯(cuò)Error!
    發(fā)表于 07-03 06:42

    請(qǐng)問(wèn)STM32CubeIDE如何加載外部bin文件?

    我有一個(gè)外部的bin文件,想要編譯、鏈接到stm32工程里,如何用stm32cubeide來(lái)實(shí)現(xiàn)呢? 我知道在keil中可以添加一個(gè).s文件可以實(shí)現(xiàn),但是keil中用匯編指令I(lǐng)NCBIN,在s
    發(fā)表于 05-30 06:41

    STM32CUBEIDE出現(xiàn)error downloading following files的原因?

    STM32CUBEIDE出現(xiàn)error downloading following files
    發(fā)表于 05-20 07:05

    STM32CubeIDE使用DSP庫(kù)編譯后特別大是什么原因?qū)е碌模?/a>

    STM32CubeIDE 使用DSP庫(kù)編譯后特別大?
    發(fā)表于 04-18 08:10

    stm32cubeIDE代碼運(yùn)行時(shí)間如何查看?

    stm32cubeIDE 代碼運(yùn)行時(shí)間,如何查看?就如 keil 調(diào)試時(shí)候那樣,可以測(cè)試代碼的運(yùn)行時(shí)間。但是在stm32cubeIDE 中,一直沒(méi)有找到這個(gè)功能,不知道哪位高人可以提示下在哪里查看的?
    發(fā)表于 04-16 08:10

    STM32cubeide如何能打開(kāi)以前cubemx工程文件(*.ioc文件)?

    請(qǐng)教: STM32cubeideSTM32CubeMX+編譯器的整合版本 為了縮減開(kāi)發(fā)時(shí)間,想直接打開(kāi)原來(lái)cubemx的項(xiàng)目。 請(qǐng)教:STM32cubeide如何能打開(kāi)以前cubem
    發(fā)表于 04-16 08:03

    stm32CubeIDE如何能生成Lib?

    請(qǐng)問(wèn)stm32CubeIDE如何能生成 Lib?
    發(fā)表于 04-12 07:57

    請(qǐng)問(wèn)如何把keil工程導(dǎo)入Stm32CubeIDE ?

    如何把keil工程導(dǎo)入Stm32CubeIDE ?
    發(fā)表于 04-09 08:30

    STM32CUBEIDE軟件生成工程怎么使用CCRAM型號(hào)?

    求助STM32CUBEIDE軟件生成工程怎么使用CCRAM 型號(hào):STM32G474VE
    發(fā)表于 04-08 08:20

    求助,為什么STM32CUBEIDE中的GCC編譯器不提示if語(yǔ)句中的錯(cuò)誤信息?

    STM32cubeIDE中的GCC編譯器,在如下語(yǔ)句,因?yàn)檩斿e(cuò)了,但GCC沒(méi)有提示錯(cuò)誤信息,只提示了一個(gè)警告信息,如何設(shè)置能提示? uint8_ti=0; uint8_tk=0
    發(fā)表于 04-07 08:47

    STM32CubeMX生成stm32cubeide工程報(bào)錯(cuò)的原因?怎么解決?

    生不成STM32CubeIDE工程,生成最后出個(gè)警告,說(shuō)工程有問(wèn)題,請(qǐng)問(wèn)我的問(wèn)題出在哪里? 所有路勁都使用了英文,沒(méi)有中文字符
    發(fā)表于 04-07 07:14

    stm32cubeide跳轉(zhuǎn)位置會(huì)偏移的原因?

    stm32cubeide 按住Ctrl+點(diǎn)擊,全局搜索,open declaration,鼠標(biāo)懸停在 函數(shù)或變量或結(jié)構(gòu)體上時(shí)定位常常錯(cuò)誤會(huì)向下偏移 沒(méi)用找定義的位置,有一些又找到了.并且從新編譯(ctrl+b)也沒(méi)用
    發(fā)表于 03-18 06:54

    STM32CUBEIDE無(wú)法直接下載package包怎么解決?

    STM32CUBEIDE無(wú)法直接下載package包
    發(fā)表于 03-11 07:38