Eclipse符号无法解析

时间:2014-11-12 09:05:15

标签: c eclipse enums

我定义了这两个枚举:

typedef enum {
  PBUF_TRANSPORT,
  PBUF_IP,
  PBUF_LINK,
  PBUF_RAW
} pbuf_layer;

typedef enum {
  PBUF_RAM, /* pbuf data is stored in RAM */
  PBUF_ROM, /* pbuf data is stored in ROM */
  PBUF_REF, /* pbuf comes from the pbuf pool */
  PBUF_POOL /* pbuf payload refers to RAM */
} pbuf_type;

这样使用

p = pbuf_alloc(PBUF_RAW, PBUF_LEN_MAX, PBUF_POOL);

包含.h文件:

#include "src/include/lwip/pbuf.h"

编译时控制台上没有错误,但是eclipse IDE说

  

"符号' PBUF_POOL'不可能   已解决cpswif.c / AM3359LWIPLibrary / cpsw / netif line 549 Semantic   错误"

     

"符号' PBUF_RAW'不可能   已解决cpswif.c / AM3359LWIPLibrary / cpsw / netif line 549 Semantic   错误"

.h文件中包含的所有其他变量和函数似乎都可以正常工作,但这两个并非如此。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

最好的猜测:Eclipse中的代码检查程序失败了。我知道这很烦人,但如果没有编译错误,你只需要让它们。 更多信息:CDT(Eclipse for C / C ++插件)有一个名为Codan(代码分析)的框架,它尽可能地检查语法和语义错误。为此它使用解析的代码(CDT有一个自己的解析器,不使用你选择的那个,所以它更快,因为你并不总是想编译你的代码以查看Eclipse中的语法错误)并进行一些检查。但是Codan真的很麻烦,而且我自己也经历过这样的错误标记是你无法摆脱的。有时它有助于重新启动Eclipse,清理工作区(菜单Project⇒clean),但大多数情况下你无法在不改变显示错误的代码的情况下删除它们,保存它,构建它,再次删除它并再次保存和构建。这至少有时帮助了我。 我知道这太可怕了。