Gcc Eclipse CDT在_属性_关键字上出现语法错误
我想知道在使用gcc的“Gcc Eclipse CDT在_属性_关键字上出现语法错误,gcc,indexing,syntax-error,eclipse-cdt,Gcc,Indexing,Syntax Error,Eclipse Cdt,我想知道在使用gcc的“\uuuuu attribute\uuuu”关键字时,是否有办法消除CDT语法错误警告 不言而喻,我不想关闭CDT语法检查。我没有尝试过它,而且我已经有一段时间没有使用Eclipse了,但这里有一个想法: 在Eclipse的CDT设置(或者可能只是您的项目)中,设置一个预定义的宏(我似乎记得您可以告诉它编译器自动定义了什么),名为\uuuuuuuu attribute\uuuuuuu,它接受一个参数,并展开为零 也许我没有解释清楚。让我举个例子再试一次。基本上,目标是定义
\uuuuu attribute\uuuu
”关键字时,是否有办法消除CDT语法错误警告
不言而喻,我不想关闭CDT语法检查。我没有尝试过它,而且我已经有一段时间没有使用Eclipse了,但这里有一个想法: 在Eclipse的CDT设置(或者可能只是您的项目)中,设置一个预定义的宏(我似乎记得您可以告诉它编译器自动定义了什么),名为
\uuuuuuuu attribute\uuuuuuu
,它接受一个参数,并展开为零
也许我没有解释清楚。让我举个例子再试一次。基本上,目标是定义一个如下所示的宏:
#if ECLIPSE_THINKS_THIS_IS_SET_BUT_GCC_DOESNT
#define __attribute__(X) /* nothing */
#endif
但是没有在您的代码中实际添加任何内容。我没有尝试过,也有一段时间没有使用Eclipse,但这里有一个想法:
Project->Properties->C/C++ general->Path and Symbols->Symbols
Add->
Name: __attribute__(X)
Value: (leave blank)
在Eclipse的CDT设置(或者可能只是您的项目)中,设置一个预定义的宏(我似乎记得您可以告诉它编译器自动定义了什么),名为\uuuuuuuu attribute\uuuuuuu
,它接受一个参数,并展开为零
也许我没有解释清楚。让我举个例子再试一次。基本上,目标是定义一个如下所示的宏:
#if ECLIPSE_THINKS_THIS_IS_SET_BUT_GCC_DOESNT
#define __attribute__(X) /* nothing */
#endif
但是没有在代码中添加任何内容
Project->Properties->C/C++ general->Path and Symbols->Symbols
Add->
Name: __attribute__(X)
Value: (leave blank)
相关链接:
相关链接:ECLIPSE认为这是一个集合,但GCC不是”的定义(来自ams的答案)确实存在,它被称为\uuuuuCDT\uParser
。例如:
#ifdef __CDT_PARSER__
#define __FILE__ "<file>"
#define __LINE__ (-1)
#define __DATE__ "<date>"
#define __TIME__ "<time>"
#endif // #ifdef __CDT_PARSER__
#ifdef_uu_ucdt_解析器__
#定义文件
#定义线(1)
#定义日期
#定义时间
#endif/#ifdef_u_ucdt_解析器__
希望这会有帮助。ECLIPSE认为这是一个集,但GCC不是”的定义(来自ams的回答)确实存在,它被称为\uuuuuCDT\u解析器。例如:
#ifdef __CDT_PARSER__
#define __FILE__ "<file>"
#define __LINE__ (-1)
#define __DATE__ "<date>"
#define __TIME__ "<time>"
#endif // #ifdef __CDT_PARSER__
#ifdef_uu_ucdt_解析器__
#定义文件
#定义线(1)
#定义日期
#定义时间
#endif/#ifdef_u_ucdt_解析器__
希望这会有帮助。ziu的答案也适用于XC8微芯片编译器
Name: __interrupt
Value: (leave blank)
功能原型现在是干净的:
void __interrupt ISRs(void);
Eclipse不会对此抱怨。ziu的答案也适用于XC8微芯片编译器
Name: __interrupt
Value: (leave blank)
功能原型现在是干净的:
void __interrupt ISRs(void);
Eclipse不会对此抱怨。谢谢你的提示,我解决了这个问题。我发布了一个直截了当的答案,你得到了赏金。谢谢你的提示,我解决了这个问题。我发布了一个直截了当的回答,你得到了赏金。这对我不起作用。它在生成中产生错误:语法错误:意外”(“
我假设这是在宏的(X)
部分吐出的shell。GCC甚至支持这一点吗?这对我不起作用。它在生成中产生错误:语法错误:意外”(“
我假设这是在(X)部分吐出的shell)
宏的一部分。GCC是否支持这一点?这是完美的,我相信这是正确的答案。这种方法的额外好处是它可以应用于多个项目,而无需任何额外的项目配置。这是完美的,我相信这是正确的答案。这种方法的额外好处是它可以可以应用于多个项目,而无需任何其他项目配置。