libwebsockets:取消引用指向不完整类型错误的指针

时间:2014-02-03 12:32:02

标签: c libwebsockets

我正在使用libwebsockets,我无法编译自己实现的演示代码。

我创建了context

struct libwebsocket_context *context;
...
context = libwebsocket_create_context(&info);

当我尝试访问private-libwebsockets.h中定义的struct libwebsocket_context的成员时:

struct libwebsocket_context {
    struct pollfd *fds;
    struct libwebsocket **lws_lookup; /* fd to wsi */
    int fds_count;
    int max_fds;
    int listen_port;
    ...
};

例如,

printf("%d\n", context->listen_port);

编译器返回

error: dereferencing pointer to incomplete type

谢谢!

2 个答案:

答案 0 :(得分:1)

gcc似乎不知道“struct libwebsocket_context” - 这就是发生此错误的原因。您确定.h文件中包含此结构的定义吗?我建议你插入例如#warning或#error,在这个结构的定义附近有一些消息(在.h文件中)并尝试重新编译你的程序。编译时应出现#error或#warning消息。如果不是 - 这意味着gcc也不会看到这个结构。

答案 1 :(得分:1)

结构定义位于 private -libwebsockets.h中这一事实表明您不应该直接使用struct成员。您可以#include该标头来访问库的私有实现细节,但您可能不应该这样做。