jcfaracco
jcfaracco

Reputation: 894

libwebsockets: Dereferencing pointer to incomplete type error

I'm using libwebsockets and I can't compile a demo code implemented by myself.

I created the context:

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

and when I try to access the members of the struct libwebsocket_context, defined in private-libwebsockets.h:

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

For example,

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

The compiler returns,

error: dereferencing pointer to incomplete type

Thanks!

Upvotes: 0

Views: 322

Answers (2)

Joni
Joni

Reputation: 111289

The fact that the struct definition is in private-libwebsockets.h suggests that you are not supposed to use the struct members directly. You can #include that header to get access to the private implementation details of the library but you probably should not do it.

Upvotes: 1

user2699113
user2699113

Reputation: 4509

It seems that "struct libwebsocket_context" is not known for gcc - that's why this error occures. Are you sure that definition of this structure is included from .h file? I'd suggest you to insert for example #warning or #error with some message near definition of this struct (in .h file) and try to recompile your program. Your #error or #warning message should appear while compilation. If not - it means that gcc will not also see this struct.

Upvotes: 1

Related Questions