我正在尝试使用arm-none-eabi-gcc为STM32编译一个usb环回示例,但是我遇到了bool变量的编译器错误。错误为error: expected ';', identifier or '(' before '_Bool'
,违规行为
typedef enum
{
FALSE = 0, TRUE = !FALSE
}
bool;
根据我的阅读,似乎bool
是_Bool
的别名,而gcc过渡到bool
是实际类型。不幸的是我不知道如何解决这个问题。通过一些谷歌搜索,我已经读到类似的问题有时与在其他地方定义TRUE
和FALSE
有关,但我使用的是STM基本上未更改的代码,并且不知道其他任何地方可能被定义。我还读到它可能是由于链接libc但在使用-nostdlib
进行编译时遇到了同样的错误。有什么办法可以缩小这个问题吗?感谢。
答案 0 :(得分:1)
由于这个typedef试图定义一个bool类型而我的编译器试图使用_Bool类型,我最终做的就是将typedef一起注释掉,只使用
#define TRUE 1
#define FALSE 0
我不是肯定的,这解决了这个问题,因为我仍然无法对usb设备进行枚举,但程序现在已经编译了。