Libevent的安装与使用(一)
一、了解libevent
Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。
libevent包括事件管理、缓存管理、DNS、HTTP、缓存事件几大部分。事件管理包括各种IO(socket)、定时器、信号等事件;缓存管理是指evbuffer功能;DNS是libevent提供的一个异步DNS查询功能;HTTP是libevent的一个轻量级http实现,包括服务器和客户端。libevent也支持ssl,这对于有安全需求的网络程序非常的重要,但是其支持不是很完善,比如http server的实现就不支持ssl。Reactor(反应堆)模式是libevent的核心框架,libevent以事件驱动,自动触发回调功能。Reactor(反应堆)模式是libevent的核心框架,libevent以事件驱动,自动触发回调功能。
二、安装libevent
官方网站: http://libevent.org
安装环境:CentOS7
源码包的安装,以2.1.12版本为例,在官网可以下载到源码包libevent-2.1.12-stable.tar.gz,基本安装步骤与第三方库源码包安装方式基本一致。
1.解压源码包并进入到源码目录
2.执行配置文件./configure,生成makefile
也可以指定具体路径,这样安装的时候,将统一安装到指定路径 例如:./configure --prefix=/usr/local/libevent,这样的好处是以后打包安装好的文件方便,不好的地方是由于安装的目录有可能不是系统头文件或库文件的目录,使用的时候需要增加gcc选项来包含头文件路径和库文件路径,以及需要解决动态库不能加载的问题。
3.编译源码
4.编译成功后安装
头文件的安装路径:
库文件的安装路径:
三、使用Libevent编写简单的程序并编译使用
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> #include <event.h> int main() { const char ** methods = event_get_supported_methods(); //获取libevent后端支持的方法 int i = 0; for (i = 0; methods[i] != NULL; i++) { printf ( "%s\n" , methods[i]); } return 0; } |
使用libevent库开发的程序,默认编译需要加入-levent
编译后运行:
如果在编译或运行时候发现出现:error while loading shared libraries: libevent-2.1.so.7: cannot open shared object file: No such file or directory
先查看libevent-2.1.so.7是否安装成功
从上面查找结果可以发现,系统已经安装了该模块,在路径 /usr/local/lib/下。映射libevent-2.1.so.7到lib64下即可
再次编译执行后的结果:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器