1.介绍
Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。
Libevent 已经被广泛的应用,作为底层的网络库;比如 memcached、 Vomit、 Nylon、 Netchat等等。
2.编译、安装
[fly@fly-vm Libevent]$ wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
[fly@fly-vm Libevent]$ du -sh libevent-2.1.12-stable.tar.gz
1.1M libevent-2.1.12-stable.tar.gz
[fly@fly-vm Libevent]$ tar -zxvf libevent-2.1.12-stable.tar.gz
[fly@fly-vm Libevent]$ cd libevent-2.1.12-stable/
[fly@fly-vm libevent-2.1.12-stable]$ ./configure --prefix=$PWD/../_install
[fly@fly-vm libevent-2.1.12-stable]$ make
[fly@fly-vm libevent-2.1.12-stable]$ make verify
[fly@fly-vm libevent-2.1.12-stable]$ make install
[fly@fly-vm libevent-2.1.12-stable]$ cd ../_install/
[fly@fly-vm _install]$ tree
.
├── bin
│ └── event_rpcgen.py
├── include
│ ├── evdns.h
│ ├── event2
│ │ ├── buffer_compat.h
│ │ ├── bufferevent_compat.h
│ │ ├── bufferevent.h
│ │ ├── bufferevent_ssl.h
│ │ ├── bufferevent_struct.h
│ │ ├── buffer.h
│ │ ├── dns_compat.h
│ │ ├── dns.h
│ │ ├── dns_struct.h
│ │ ├── event_compat.h
│ │ ├── event-config.h
│ │ ├── event.h
│ │ ├── event_struct.h
│ │ ├── http_compat.h
│ │ ├── http.h
│ │ ├── http_struct.h
│ │ ├── keyvalq_struct.h
│ │ ├── listener.h
│ │ ├── rpc_compat.h
│ │ ├── rpc.h
│ │ ├── rpc_struct.h
│ │ ├── tag_compat.h
│ │ ├── tag.h
│ │ ├── thread.h
│ │ ├── util.h
│ │ └── visibility.h
│ ├── event.h
│ ├── evhttp.h
│ ├── evrpc.h
│ └── evutil.h
└── lib
├── libevent-2.1.so.7 -> libevent-2.1.so.7.0.1
├── libevent-2.1.so.7.0.1
├── libevent.a
├── libevent_core-2.1.so.7 -> libevent_core-2.1.so.7.0.1
├── libevent_core-2.1.so.7.0.1
├── libevent_core.a
├── libevent_core.la
├── libevent_core.so -> libevent_core-2.1.so.7.0.1
├── libevent_extra-2.1.so.7 -> libevent_extra-2.1.so.7.0.1
├── libevent_extra-2.1.so.7.0.1
├── libevent_extra.a
├── libevent_extra.la
├── libevent_extra.so -> libevent_extra-2.1.so.7.0.1
├── libevent.la
├── libevent_openssl-2.1.so.7 -> libevent_openssl-2.1.so.7.0.1
├── libevent_openssl-2.1.so.7.0.1
├── libevent_openssl.a
├── libevent_openssl.la
├── libevent_openssl.so -> libevent_openssl-2.1.so.7.0.1
├── libevent_pthreads-2.1.so.7 -> libevent_pthreads-2.1.so.7.0.1
├── libevent_pthreads-2.1.so.7.0.1
├── libevent_pthreads.a
├── libevent_pthreads.la
├── libevent_pthreads.so -> libevent_pthreads-2.1.so.7.0.1
├── libevent.so -> libevent-2.1.so.7.0.1
└── pkgconfig
├── libevent_core.pc
├── libevent_extra.pc
├── libevent_openssl.pc
├── libevent.pc
└── libevent_pthreads.pc
5 directories, 62 files