簡體   English   中英

使用arm-none-eabi-gcc和bool變量的編譯器錯誤

[英]Compiler error using arm-none-eabi-gcc and bool variables

我正在嘗試使用arm-none-eabi-gcc編譯STM32的usb環回示例,但由於布爾變量而陷入編譯器錯誤。 錯誤是error: expected ';', identifier or '(' before '_Bool' ,並且冒犯的行是

typedef enum
{
  FALSE = 0, TRUE  = !FALSE
}
bool;

根據我的閱讀,似乎bool_Bool的別名,而gcc轉換為bool是實際類型。 不幸的是,我不知道如何解決這個問題。 通過一些谷歌搜索,我已經讀到類似的問題有時與在其他位置定義TRUEFALSE有關,但是我使用的是STM大致不變的代碼,並且不知道它們可能在其他地方定義。 我還讀到它可能是由於針對libc進行鏈接,但使用-nostdlib編譯時會-nostdlib相同的錯誤。 我有什么辦法可以縮小這個問題? 謝謝。

由於此typedef試圖定義布爾類型並且我的編譯器試圖使用_Bool類型,所以我最終要做的就是一起注釋掉typedef並僅使用

#define TRUE 1
#define FALSE 0

我不能肯定這解決了問題,因為我仍然無法枚舉USB設備,但是程序現在可以編譯了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM