今天,在Linux 2.6内核的Ubuntu上编译运行依程序,出现了错误:Event library not defined。分析了一下,应该是 libevent 的问题。
1、libevent 介绍
libevent API提供当文件描述符上的特定事件发生时或达到超时之后执行回调函数的机制。此外,libevent的还支持因信号或经常超时引发的回调。libevent 提供了多种I/O机制,支持/dev/poll, kqueue(2), event ports, POSIX select(2), Windows select(), poll(2), and epoll(4)等高并发网络编程模型。
2、libevent 安装
2.1. 从官网下载源代码:http://libevent.org/,最新的版本已达到2.1.(我下载的版本是:libevent-2.0.22-stable.tar.gz.)
2.2. 先把ubuntu系统自带的libevent 1.4卸载,可通过ubuntu软件中心卸载
2.3. 解压下载的libevent,解压命令:
sudo tar -zxvf libevent-2.0.22-stable.tar.gz
2.4.进入解压文件目录:
cd libevent-2.0.22-stable
2.5.编译步骤:
sudo ./configure --prefix=/usr
sudo make
sudo make install
3、链接 libevent
3.1. 代码中包含头文件
#include<event.h>
3.2 编译的时候链接libevent库
使用gcc的时候加上
-levent