作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我现在正在使用 libevent:
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdio.h>
#include <event2/event.h>
struct event_base *base;
int PORT = 9999;
int BACKLOG = 5;
int create_bind_listen()
{
struct sockaddr_in my_addr;
int yes = 1;
int sock = socket(AF_INET, SOCK_STREAM, 0);
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int));
memset(&my_addr, 0, sizeof(struct sockaddr_in));
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(PORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
bind(sock, (struct sockaddr*)&my_addr, sizeof(struct sockaddr));
listen(sock, BACKLOG);
return sock;
}
void cb_func(evutil_socket_t fd, short what, void *arg)
{
printf("%d\n", fd);
}
int main()
{
int sock = create_bind_listen();
struct event *ev;
base = event_base_new();
/* */
ev = event_new(base, sock,
(short)EV_READ|EV_PERSIST,
cb_func, NULL);
event_add(ev, NULL);
event_base_dispatch(base);
return 0;
}
当我用它编译时:
gcc -Wall main.c -levent -levent_core
发生错误:
/tmp/cc9x1mMj.o: In function `main':
main.c:(.text+0x11b): undefined reference to `event_new'
collect2: ld returned 1 exit status
我该如何解决这个问题?
谢谢!
最佳答案
您需要指定您的.a
所在的目录。文件位于 -L
选项:
gcc -Wall main.c -L. -levent -levent_core
关于c - 使用 libevent 编译时对 `event_new' 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22538202/
我正在尝试调试使用 libevent 库的代码。在该库中,有一个函数 event_new 假设创建一个 event_cb。不知何故,在我分派(dispatch)事件库后,无法调用或访问 event_c
我现在正在使用 libevent: #include #include #include #include #include #include struct event_base *bas
首先,我不是程序员,我是做电气工程的。我做过一些编程,但永远不会说我是一个好的程序员。这个问题可能会被否决,但这没关系,因为我已经尝试这样做两个月了。 我对 event.h 一无所知,但我有一个可以工
我是一名优秀的程序员,十分优秀!