网上关于libevent的介绍不在少数,我相信目前看到我这篇博客时已经基本了解libevent是用来做什么的,有什么功能,在此就不重复介绍了。我会按照我学习的过程来完整记录整个库的所有核心内容和具体应用。
libevent是一个用c语言开发的网络库,封装了select,poll,epoll这种IO复用函数,使之能够换一种方式:基于reactor 工作。
首先安装libevent,进入官网https://libevent.org/进行下载,本文写作时间为2020年5月28日,本系列所有内容均基于目前最新稳定版2.1.11。读者可根据自己的需求下载自己将要用的版本,亦可和作者使用同一版本。
可供下载的文件格式为gz压缩包,这种压缩格式目前在三大操作系统中均可直接解压缩,在windows中直接双击即可,在linux中使用tar命令解压缩。
由于作者全程在Linux系统上进行学习与实验,故后序只介绍在linux中的具体操作,并且具体linux发行版本为Ubuntu18.04。
下载解压后,需要对解压后的文件进行编译,这一步不能直接进行make,不然会出现下面这条错误信息:
make: *** No targets specified and no makefile found. Stop.
出错的原因是没有makefile文件 ,使用./configure 来生成这个文件,这个命令可以设置编译后的目录,默认是/usr/local。这时由于默认编译后文件在/usr/local内比较散乱,我们可以重新指定编译后的目录为/usr/local/libevent。当然,可以随意指定编译目录以后调用时知道在哪即可。
作者指定的目录如下:
./configure /usr/local/libevent
这样,我们便可以进行编译了,使用make编译后,继续用make install,如果此处出现错误,使用root进行编译即可。编译完成后,会在/usr/local文件夹下出现libevent文件夹,内含三个文件,这三个即是编译后的全部内容。