libevent安装与libevent定时器

主要是参考了一下网上的方法,http://blog.sina.com.cn/s/blog_4b93170a0100mbm9.html

并自己实际操作了一下,针对自己出现的一些情况进行说明。并在实际编译链接过程中进行实践。

这些其实都是一些基本的简单操作,但是对于我这种菜鸟级别的小白来说,还是挺好的,高手请口下留情。

本文主要针对mac系统,对linux系统也适用。

首先从libevent的官网(http://libevent.org)中下载压缩包,这里我下的是到目前为止最新的版本,libevent-2.0.5-stable,下完后解压。

命令行进入libevent的主目录

cd libevent-2.0.5-stable

然后执行命令:

./configure -prefix=/usr

这里是配置库安装在 /usr 文件夹下

然后就会有一堆的checking,不管它们。

接着执行命令:make

然后用管理员权限进行安装

命令:make install

到此,就安装完成了。

下面我们看libevent是否真的安装成功,执行命令:ls -al /usr/lib | grep libevent

如果出现下图类似的结果,表示安装成功:

下面我们进行一个简单的计时器程序来测试libevent。

代码参考下面的这位同学:http://blog.csdn.net/happyanger6/article/details/7272433

#include <event.h>
#include <iostream>

using namespace std;

struct event ev;
struct timeval tv;

void time_cb(int fd, short event, void *argc)
{
    //printf("timer wakeup\n"); //如果是用这句输出而不是用下面的输出,在我电脑中是没有输出的,如果是界面函数的话,还会卡住.不知道什么原因
    cout<<"timer wakeup"<<endl;
    event_add(&ev, &tv); // reschedule timer
}

int main()
{
    cout<<"test"<<endl;

    struct event_base *base = event_init();     //初始化
    tv.tv_sec = 2; // 2s period     设置定时的时间
    tv.tv_usec = 0;
    evtimer_set(&ev, time_cb, NULL);    //初始化关注的事件,并设置回调函数
    event_add(&ev, &tv);        //注册事件
    cout<<"start"<<endl;
    event_base_dispatch(base);  //进入消息循环和消息分发

    cout<<"end"<<endl;
    return 0;
}

这里如果用命令行编译的话,注意要加上libevent外部链接库,我就是没有加,一直弄,弄了好久才弄好。

如果直接的 g++ -o a a.cpp

那么会出现以下错误

这说明没有包含头文件,那么我们编译的时候就要加上libevent的include的路径

命令:g++ -o a a.cpp -I /usr/include

那么这时候编译没有错误,但是链接错误了,如图所示:

这是没有链接libevent库的原因。之前绝大数情况下都是在windows下的IDE vs里面写程序的,命令行下编译链接没怎么弄过,

上网查了一下链接的命令后,下面我们可以这样来进行链接:

g++ -o a a.cpp /usr/lib/libevent.a -I /usr/include

这样就编译链接通过了。

运行程序:

./a

至此,libevent的安装以及第一个libevent的例子实现了。

另外,如果不是命令行下编译链接呢?又是怎么样操作呢?下面针对Qt5 来进行讲解。

其实,只需要在项目文件 .pro 中添加include目录和lib链接库就可以了。

INCLUDEPATH += /usr/include

LIBS += /usr/lib/libevent.a

如图所示:

运行程序,则可以在应用程序输出中看到结果:

ok,终于实现了基本的操作。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-08 20:28:39

libevent安装与libevent定时器的相关文章

PHP 7 编译安装开启 libevent 扩展支持

libevent是一个基于事件驱动的高性能网络库. 支持多种 I/O 多路复用技术, epoll. poll. dev/poll. select 和 kqueue 等:支持 I/O,定时器和信号等事件:注册事件优先级. 有效安排I/O,时间和信号的扩展 使用可用于特定平台的最佳I/O通知机制的事件,是PHP基础设施的libevent端口. libevent扩展依赖于原始的libevent库,必须先把libevent库安装. Libevent 项目在 GitHub 的项目地址:https://gi

libevent 安装与使用说明

1. 简介 libevent是一个事件触发的网络库,适用于windows.linux.bsd等多种平台,内部使用select.epoll.kqueue.IOCP等系统调用管理事件机制.著名分布式缓存软件memcached也是基于libevent,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能. 主要特点如下: 事件驱动,高性能: 轻量级,专注于网络: 跨平台,支持 Windows.Linux.Mac Os等: 支持多种 I/O多

安装了libevent和memcached之后却发现在执行的时候出现了 error while loading shared libraries问题

今天晚上心血来潮装libevent和memcached,可是却出现了奇葩的问题,结果一看越来是引导文件的路径不对! 我遇到  error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory 这样的问题是在安装memcached的时候遇到的. 我按别人的攻略安装了libevent和memcached之后却发现在执行的时候出现了. er

Linux下libevent安装与示例

用wget指令直接下载libevent:# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz 然后,在配置时需要指定一个安装路径,即./configure –prefix=/usr:然后make:然后make install: 详细的方法如下: # cd /tmp # wget http://www.monkey.org/~provos/libevent-1.2.tar.gz # tar zxvf libevent-1.2.tar.gz

libevent安装

libevent : 名气最大,应用最广泛,历史悠久的跨平台事件库:libev : 较libevent而言,设计更简练,性能更好,但对Windows支持不够好:libuv : 开发node的过程中需要一个跨平台的事件库,他们首选了libev,但又要支持Windows,故重新封装了一套,*nix下用libev实现,Windows下用IOCP实现: win7上安装: Libevent官网:http://libevent.org/ windows 7下编译: 编译环境: windows 7 + VS2

【转】libevent和基于libevent的网络编程

转自: http://www.cnblogs.com/nearmeng/p/4043548.html 1 libevent介绍和安装 介绍 libevent是一个轻量级的基于事件驱动的高性能的开源网络库,并且支持多个平台,对多个平台的I/O复用技术进行了封装,当我们编译库的代码时,编译的脚本将会根据OS支持的处理事件机制,来编译相应的代码,从而在libevent接口上保持一致. 在当前的服务器上,面对的主要问题就是要能处理大量的连接.而通过libevent这个网络库,我们就可以调用它的API来很

Linux下Libevent安装和简单实用

前言 Libevent 是一个用C语言编写的.轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大:源代码相当精炼.易读:跨平台,支持 Windows. Linux. *BSD 和 Mac Os:支持多种 I/O 多路复用技术, epoll. poll. dev/poll. select 和 kqueue 等:支持 I/O,定时器和信号等事件:注册事件优先级.Libevent 已经被广泛的应用,作为底层的

libevent安装方法

安装FastDFS之前,先安装libevent工具包,记录一下安装过程 1.检查:ls -al /usr/lib | grep libevent 查看是否已安装,如果已安装且版本低于1.3,则先通过:rpm -e libevent -nodeps 进行卸载. 2.下载libevent安装包:libevent-1.4.13-stable.tar.gz,然后解压3.切换到解压后的 libevent 主目录:cd libevent-1.4.13-stable4.依次执行: ./configure –p

总结libevent安装方法

1.先用:ls -al /usr/lib | grep libevent  查看是否已安装,如果已安装且版本低于1.3,则先通过:rpm -e libevent —nodeps 进行卸载. 2.下载libevent安装包:libevent-1.4.13-stable.tar.gz,然后解压. 3.切换到解压后的 libevent 主目录:cd libevent-1.4.13-stable 4.依次执行: ./configure –prefix=/usr (或 ./configure --prog