1、問題現(xiàn)象
我在移植 USBX 相關(guān)工程的時候碰到一個非常有趣的 Keil 編譯問題,有意分享給大家。
2、問題分析
首先 arm_compat.h 這個頭文件位于C:Keil_v5ARMARMCLANGBin..includearm_compat.h, 是位于 Keil 安裝路徑下的,很明顯是編譯器 Keil 提供的庫文件。而 cmsis_armclang.h 頭文件,位于../../../../../../Drivers/CMSIS/Include/cmsis_armclang.h, 是 CMSIS 標(biāo)準(zhǔn)頭文件。
另外,arm_compat.h 頭文件只在 Keil 編譯器下提供,對于 IAR 和 STM32CubeIDE 并沒有此頭文件,因此,這就解釋了為什么此問題只與 Keil 有關(guān)了。
3、小結(jié)
因頭文件包含順序?qū)е碌木幾g錯誤比較少見,平時我們也很少關(guān)注,因此我特意分享此例供大家參考。
閱讀全文