(一)libevent安装及简单的使用
来源:互联网 发布:仿真画笔手绘软件 编辑:程序博客网 时间:2024/05/29 01:55
前言
首先我阅读的版本是libevent-1.4.14b-stable版本。1.4系列虽然比较古老,但是它的源码相对简单,便于学习,并且主要的思想与2.0系列是一致的。
附上官网链接:http://libevent.org/
安装及简单使用libevent
接下来我们直接进入正题,安装libevent-1.4。
1. 在官网上下载对应版本的包
2. tar -zxvf /your path/libevent-1.4.14b-stable.tar.gz
解压到当前目录
3. cd libevent-1.4.14b-stable
4. ./configure
5. make && make install
6. 在/usr/local/lib
目录下应该可以看见大量的动态链接库了,这时运行ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
命令(这是为了防止在系统默认路径下 找不到库文件,也可以使用gcc中的-L参数来指定库文件的位置所在)
7. 接下来就可以使用libevent库来编写我们的代码了
简单的例子(现在看不懂没关系):
#include <stdio.h>#include <stdio.h>//使用libevent库所需头文件 #include <event.h> void onTime(int sock,short event,void *arg) { printf("hello world\n"); struct timeval tv; tv.tv_sec = 1; tv.tv_usec = 0; // 事件执行后,默认就被删除,所以需要重新添加 event_add((struct event*)arg,&tv); } int main() { // 初始化事件 event_init(); // 设置定时器回调函数 struct event ev_time; evtimer_set(&ev_time, func,&ev_ime); //1s运行一次func函数 struct timeval tv; tv.tv_sec = 1; tv.tv_usec = 0; //添加到事件循环中 event_add(&evTime,&tv); //程序等待就绪事件并执行事件处理 event_dispatch(); return 0; }
执行命令gcc demo.c -o demo -levent
编译
运行./demo
接下来就可以看到终端上每过1s就会打印hello world
出来了。
可能会遇到的问题:
error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
当编译时出现这个错误信息证明gcc没有找到你的动态链接库。
解决方法:
可能的原因有两个:
1. 你忘了执行上面提到的ln -s....
命令,这是因为运行时动态库的搜索路径默认是/lib
以及/usr/lib
路径。或者可以使用gcc demo.c -o -L/your_path demo
来指定动态链接库的位置。
2. 如果还是不行, 运行命令ldconfig
生效。
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令进行更新。
- (一)libevent安装及简单的使用
- libevent(一):简单使用
- libevent使用的简单案例
- 深入浅出libevent的使用(一)
- Flume的安装及简单的使用(一)
- 简单的html静态网页使用libevent
- libevent简单使用
- libevent简单使用小结
- libevent的安装和部分使用代码
- libevent的简单应用
- libevent的简单应用 .
- libevent-简单的定时器
- Mongodb学习日志(一):安装使用及简单操作
- Ubuntu安装libevent(libevent-2.0.21-stable)及各种出错的解决方案
- CocoaPods的简单安装及使用
- nmon工具的安装及简单使用
- Solr的安装部署及简单使用
- Mongodb的安装及简单使用
- C# 的构造函数的作用
- SpringMVC访问静态文件,如:jpg,js,css+<mvc:resources> 标签解释
- 十二种获取Spring的上下文环境ApplicationContext的方法
- Xamarin.ios 设置导航栏后退按钮 不显示文字
- yum 安装软件时的错误解决
- (一)libevent安装及简单的使用
- 三维树状数组-------
- Q_PROPERTY宏
- vnc4server+xfce4
- MarkDown数学公式
- 第四章 面向切面的Spring
- vim下ctags的使用
- BIO 实例代码
- JasperReport| JasperReport Studio操作(上)