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