编译器无法识别 __STATIC_INLINE

Fai*_*iti 2 c gcc

我有一个 C 项目,它使用 arm-none-eabi-gcc 编译器在 ARM 架构上运行,现在我尝试使用 gnu99 编译器在 Windows 上本地编译它,因为我需要进行单元测试,并且很难在实际的硬件。

然而,尽管我在 makefile 中包含了内联标志,但编译器无法识别静态内联命令,如下所示:CFLAGS += -fgnu89-inline

以下是我收到的错误:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void' __STATIC_INLINE void
Run Code Online (Sandbox Code Playgroud)

有谁知道如何让编译器识别内联命令?

Dav*_*son 5

该名称__STATIC_INLINE不是标准 C 的一部分。您要么需要为其提供宏定义,要么应该替换__STATIC_INLINEstatic inline.

  • 正如我所说,您还可以为其提供宏定义。您可以将“-D__STATIC_INLINE='static inline'”放入编译器选项中,或者在代码中找到适当的位置写入“#define __STATIC_INLINE static inline”。您还可以使用“sed”在许多地方重复更改代码。 (2认同)