这似乎是一个容易解决的问题,但我做错了什么。我已经经历了所有类似的线程,但没有找到任何解决我问题的方法,所以任何帮助将不胜感激!
基本上:C 程序,我正在尝试创建一个缓冲区事件数组。
#include <event2/listener.h>
#include <event2/bufferevent.h>
#include <event2/buffer.h>
extern struct bufferevent bev[8];
//Then, my accept functions -- well, one of them...
static void accept1(struct evconnlistener *listener,
evutil_socket_t fd, struct sockaddr *address, int socklen,
void *ctx) {
/* A new connection was received on this port */
struct event_base *base = evconnlistener_get_base(listener);
bev[0] = bufferevent_socket_new(base, fd, BEV_OPT_CLOSE_ON_FREE);
/* Callback for when (*bufevent, data READ, data WRITTEN, event OCCURRED, *void) */
bufferevent_setcb(bev[0], read1, NULL, echo_event_cb, NULL);
}
当我尝试编译(使用 -levent,我可能会添加)时,我收到此错误:
src/mix/mix1.c:57:34: error: array type has incomplete element type
有任何想法吗?:(
注意:我在 main 之外定义了缓冲区事件,以使它们在我的代码中的任何地方都可以访问,而无需传递它们。我在该地区还有其他#define,所以我确定这与我构建它们的方式有关?