簡體   English   中英

編譯器無法識別__STATIC_INLINE

[英]Compiler doesnt recognize __STATIC_INLINE

我有一個使用arm-none-eabi-gcc編譯器在ARM體系結構上運行的C項目,現在我正在嘗試使用gnu99編譯器在Windows上本地編譯它因為我需要進行單元測試而且很難在實際的硬件。

但是編譯器沒有識別靜態內聯命令,盡管我在makefile中包含了內聯標志,如下所示: CFLAGS += -fgnu89-inline

以下是我得到的錯誤:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void' __STATIC_INLINE void

有沒有人知道如何讓編譯器識別內聯命令?

名稱__STATIC_INLINE不是標准C的一部分。您需要為其提供宏定義,或者應將static inline替換為__STATIC_INLINE

我猜在一些頭文件中有一行代碼如下:

#define __STATIC_INLINE static inline

這種丑陋黑客的動機是保持C99之前的兼容性。 根據您正在編譯的平台,可能會刪除此#define。 交叉編譯器與PC平台。

隨着代碼的發展,我會努力去除這種類型的廢話。

暫無
暫無

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

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