🛠️二,libevent 安装与环境搭建
编译安装
本章节主要介绍如何在linux环境中下载libevent
源码,并进行编译安装。
进入 libevent 官方网站

这里选择最新版本libevent-2.1.12-stable.tar.gz 下载。下载后传入到linux服务器中。
直接编写一个shell编译脚本进行编译,方便编译参数设置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| # 获取当前目录 cur_dir=`pwd`
# 解压libevent tar -xzf libevent-2.1.12-stable.tar.gz
# 进入源码目录 cd libevent-2.1.12-stable
# 生成configure文件 ./autogen.sh
# --prefix=$cur_dir/libevent_build # 设置编译安装路径,也就是当前目录下的libevent_build文件夹 # --enable-shared=no # 不编译动态库 # --enable-static=yes # 编译静态库 # --disable-openssl # 不启用openssl ./configure --prefix=$cur_dir/libevent_build --enable-shared=no --enable-static=yes --disable-openssl
# 编译安装 make -j make install
|
执行libevent编译安装脚本
等待编译完成后,可以看到当前路径中内容如下:
1 2 3 4 5 6
| ls -hlt total 1.1M drwxr-xr-x 5 xutopia xutopia 4.0K Sep 6 22:50 libevent_build drwxr-xr-x 13 xutopia xutopia 4.0K Sep 6 22:50 libevent-2.1.12-stable -rwxr-xr-x 1 xutopia xutopia 558 Sep 6 22:50 build.sh -rw-r--r-- 1 xutopia xutopia 1.1M Sep 6 22:41 libevent-2.1.12-stable.tar.gz
|
程序验证
装完成后,可以通过编译一个简单的示例程序来验证 libevent
是否正确安装。以下是一个简单的 C 语言示例程序,用于创建一个简单的定时器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <event2/event.h>
static void timer_callback(evutil_socket_t fd, short event, void *arg) { printf("Timer run!\n"); }
int main() { struct event_base *base; struct event *timer;
base = event_base_new(); if (!base) { fprintf(stderr, "Failed to create event base\n"); return 1; }
timer = event_new(base, -1, EV_PERSIST, timer_callback, base); if (!timer) { fprintf(stderr, "Failed to create timer event\n"); event_base_free(base); return 1; }
struct timeval delay = {2, 0}; event_add(timer, &delay);
event_base_dispatch(base);
event_free(timer); event_base_free(base);
return 0; }
|
如果一切正常,你应该看到输出:
1 2 3 4
| #./main Timer run! Timer run! Timer run!
|