我从零开始创建了一个简单的CubeMx项目,并在Atollic上打开了它。当然,它的编译成功了。我一直在查看项目的目录和文件,以便更好地理解构建新项目时的基本结构。
我目前使用的是STM32板,它配备了CortexM4 CPU,我正在用GCC编译器用C语言编程。在这个项目中,我找到了一个名为core_cm4.h的头文件,它是宏声明的触点,即#define语句。这就是奇怪的地方:当我尝试在main.c文件(和任何其他新文件中)中使用这些宏时,它们都是可用的和可识别的,但有以下几个:
#elif defined ( __GNUC__ )
#define __ASM __asm /*!< asm keyword for GNU Compiler */
#define __INLINE inline /*!< inline keyword for GNU Compiler */
#define __STATIC_INLINE static inline定义了__GNUC__符号,编译器不报告任何警告或错误。然而,IDE没有在下拉菜单中提供这些宏,并将这个单词作为语法错误的信号。
我试图将声明移到core_cm4.h文件中的其他地方,但没有成功。我是不是忽略了一些相关的东西?
发布于 2018-06-11 23:16:41
您说过定义了__GNU__符号,但是#elif正在检查__GNUC__,这不是一回事。这是你的错吗?
发布于 2018-06-12 09:39:01
根据您的答复,该项目成功编译:
请尝试“刷新所有文件”,然后“重建”索引。
(您可以通过右键单击项目资源管理器中的项目名称来找到这些命令)

https://stackoverflow.com/questions/50800023
复制相似问题