我收到此编译错误。我尝试了一些故障排除步骤,例如将def.h文件重命名为defdif.h,以防止包含系统文件。但是这个错误不会发生。任何人都有一个想法。
core/def.c: error: expected ')' before 'n' core/def.c: error: expected ')' before 'n
def.c文件
u16_t
lwip_htons(u16_t n)
{
return( ((n & 0xff) << 8) | ((n & 0xff00) >> 8) );
}
u32_t
lwip_htonl(u32_t n)
{
return ((n & 0xff) << 24) |
((n & 0xff00) << 8) |
((n & 0xff0000UL) >> 8) |
((n & 0xff000000UL) >> 24);
}
答案 0 :(得分:3)
错误如:
u16_t lwip_htons (u16_t n)
core/def.c: error: expected ')' before 'n'
几乎始终与相关,因为u16_t
类型未在您使用它的位置定义。
例如,在gcc
:
int fn (u16_t n) { return n; }
int main (void) { return 0; }
给你:
qq.c:1: error: expected ')' before 'n'
您描述的确切错误消息。当我将其更改为:
时,该错误消失typedef int u16_t;
int fn (u16_t n) { return n; }
int main (void) { return 0; }
因此,可以合理地安全地假设未定义类型(您可以通过在lwip_htons
之前临时定义它来测试它,就像我一样)。
现在我不确定你在你的代码库上造成了什么可怕的变形,但是,如果它是我正在考虑的包,则在arch/cc.h
中定义它们。确保链接包含在链接中。
如果不是我认为的那个,你就必须自己去寻找typedef
。