标签:c++ mac libevent 网络编程 qt
并自己实际操作了一下,针对自己出现的一些情况进行说明。并在实际编译链接过程中进行实践。
这些其实都是一些基本的简单操作,但是对于我这种菜鸟级别的小白来说,还是挺好的,高手请口下留情。
本文主要针对mac系统,对linux系统也适用。
命令行进入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,终于实现了基本的操作。
版权声明:本文为博主原创文章,未经博主允许不得转载。
libevent安装与libevent定时器
标签:c++ mac libevent 网络编程 qt
原文地址:http://blog.csdn.net/u013592466/article/details/47262821