我想知道在使用gcc的“__attribute__
”关键字时是否有办法摆脱CDT语法错误警告。关于__attribute__关键字的Eclipse CDT语法错误
不言而喻,我不想关闭CDT语法检查。
我想知道在使用gcc的“__attribute__
”关键字时是否有办法摆脱CDT语法错误警告。关于__attribute__关键字的Eclipse CDT语法错误
不言而喻,我不想关闭CDT语法检查。
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
我还没有尝试过,我也没有用过Eclipse一段时间,但这里有一个想法:
在CDT设置为Eclipse(或者只是你的项目)设置一个预定义宏(我似乎记得你可以告诉它什么编译器自动定义)名为__attribute__
需要一个参数,并扩大到什么。
也许我没有解释正确。让我再试一个例子。基本上,目标是定义一个这样工作的宏:
#if ECLIPSE_THINKS_THIS_IS_SET_BUT_GCC_DOESNT
#define __attribute__(X) /* nothing */
#endif
但是没有在您的代码中放入任何东西。
的 “ECLIPSE_THINKS_THIS_IS_SET_BUT_GCC_DOESNT” 的定义(从AMS的回答)真的extsts并呼吁__CDT_PARSER__
。例如:
#ifdef __CDT_PARSER__
#define __FILE__ "<file>"
#define __LINE__ (-1)
#define __DATE__ "<date>"
#define __TIME__ "<time>"
#endif // #ifdef __CDT_PARSER__
希望这会有所帮助。
这是完美,我相信这是正确的答案。这种方法的额外好处是它可以应用于多个项目而无需任何额外的项目配置。 – mrtumnus
ziu的回答也是工作XC8 Microchip的编译器
Name: __interrupt
Value: (leave blank)
函数原型现在是干净的:
void __interrupt ISRs(void);
而Eclipse将不会抱怨。
这不适合我。它产生在构建一个错误: '语法错误:?意外“(”' 我认为这是shell呕吐的'(X)'宏的部分是,即使通过GCC支持 – mrtumnus