libevent安装与libevent定时器

本文详细介绍了在Mac系统上安装libevent库的步骤,包括下载、配置、编译和安装,并通过一个简单的计时器程序验证安装成功。在遇到编译链接问题时,提供了解决方案,包括在命令行中添加头文件路径和库链接。此外,还讨论了在Qt5项目中如何添加libevent的include路径和库链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要是参考了一下网上的方法, 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。

#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,终于实现了基本的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值