我正在使用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
谢谢!
答案 0 :(得分:1)
gcc似乎不知道“struct libwebsocket_context” - 这就是发生此错误的原因。您确定.h文件中包含此结构的定义吗?我建议你插入例如#warning或#error,在这个结构的定义附近有一些消息(在.h文件中)并尝试重新编译你的程序。编译时应出现#error或#warning消息。如果不是 - 这意味着gcc也不会看到这个结构。
答案 1 :(得分:1)
结构定义位于 private -libwebsockets.h中这一事实表明您不应该直接使用struct成员。您可以#include该标头来访问库的私有实现细节,但您可能不应该这样做。