__attribute__关键字上的Eclipse CDT语法错误

时间:2011-11-01 14:45:43

标签: gcc indexing syntax-error eclipse-cdt

我想知道在使用gcc的“__attribute__”关键字时是否有办法摆脱CDT语法错误警告。

不言而喻,我不想关闭CDT语法检查。

4 个答案:

答案 0 :(得分:3)

“ECLIPSE_THINKS_THIS_IS_SET_BUT_GCC_DOESNT”定义(来自 ams 的答案)确实超出了它,并调用__CDT_PARSER__。例如:

#ifdef __CDT_PARSER__
#define __FILE__                "<file>"
#define __LINE__                (-1)
#define __DATE__                "<date>"
#define __TIME__                "<time>"
#endif // #ifdef __CDT_PARSER__

希望这会有所帮助。

答案 1 :(得分:2)

我没有尝试过,而且我已经有一段时间没用过Eclipse了,但是这里有个想法:

在Eclipse的CDT设置中(或者可能只是你的项目)设置一个预定义的宏(我似乎记得你可以告诉它编译器自动定义的内容)名为__attribute__的一个参数,并展开没什么。

也许我没有解释说得对。让我再举一个例子。基本上,目标是定义一个像这样工作的宏:

#if ECLIPSE_THINKS_THIS_IS_SET_BUT_GCC_DOESNT
#define __attribute__(X) /* nothing */
#endif

但没有在您的代码中放置任何内容。

答案 2 :(得分:2)

Project->Properties->C/C++ general->Path and Symbols->Symbols

Add-> 
     Name: __attribute__(X)
     Value: (leave blank)

相关链接:You can use this technique basically with any offending keyword

答案 3 :(得分:1)

ziu的答案也适用于XC8 Microchip编译器

Name: __interrupt
Value: (leave blank)

现在,函数原型是干净的:

void __interrupt ISRs(void);

Eclipse不会抱怨它。