0

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

我创建了context

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

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

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

谢谢!

4

2 回答 2

1

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

于 2014-02-03T14:34:01.717 回答
1

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

于 2014-02-03T12:41:32.050 回答