在Mac OS下使用libevent库

编译

从官网下载最新的release包 libevent-2.0.22-stable.tar.gz
解压并进入相应目录后进行编译:
./configure && make sudo make install
编译完成后,可以按Command+Shilt+G进入目录(/usr/local/lib)查看生成的文件夹 libevent-2.0.22

定时器示例

新建一个Command Line Tool 的c++项目,首先在Build Phases->Link Binary With Libraries里添加三个.a库文件 libevent_core.a、libevent_extra.a、libevent_phreads.a(这几个库文件的选择视情况而定)。
检查Building Setting里的Library Search Paths是否已添加了libevent库文件目录,如果没有则添加(以下是我本机路径):
/usr/local/libevent-2.0.22/lib //库文件目录
在Header Search Paths里将头文件的目录添加进去(以下是我本机路径):
/usr/local/libevent-2.0.22/include //头文件的目录
在main.cpp添加简单定时器代码:
#include <stdio.h> #include <iostream> // libevent头文件 #include <event.h> using namespace std; struct event evt; struct timeval tv; // 定时事件回调函数 void time_cb(int sock, short event, void *arg) { printf("timer wakeup\n"); //重新添加定时事件(定时事件触发后默认自动删除) event_add((struct event*)arg, &tv); } int main() { //初始化 struct event_base *base = event_init(); tv.tv_sec = 1; //1s period tv.tv_usec = 0; //设置定时事件 evtimer_set(&evt,time_cb, &evt); // 添加定时事件 event_add(&evt, &tv); //事件循环 event_base_dispatch(base); return 0; }

参见


评论

此博客中的热门博文

Android跨平台编译 —— libevent

开源 C++ 库列表