Gcc Eclipse CDT在_属性_关键字上出现语法错误

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,它接受一个参数,并展开为零 也许我没有解释清楚。让我举个例子再试一次。基本上,目标是定义

我想知道在使用gcc的“
\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是否支持这一点?这是完美的,我相信这是正确的答案。这种方法的额外好处是它可以应用于多个项目,而无需任何额外的项目配置。这是完美的,我相信这是正确的答案。这种方法的额外好处是它可以可以应用于多个项目,而无需任何其他项目配置。