我从零开始创建了一个简单的CubeMx项目,并在Atollic TrueStudio上打开它。当然,它的编译成功了。我一直在环顾项目的目录和文件,以便在构建新项目时更好地理解裸结构。
我目前使用的是配备CortexM4 CPU的STM32板,我使用GCC编译器在 C 中编程。在项目中,我找到了一个名为 core_cm4.h 的头文件,它是宏声明的扩展,即 #define 语句。这是奇怪的事情出现的地方:当我尝试在 main.c 文件(以及任何其他新文件)中使用这些宏时,它们都可用并被识别,但是以下的: / p>
#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 文件中的其他位置移动声明失败。我是否忽略了相关的内容?