libevent--开发环境搭建

libevent–开发环境搭建

Libevent 是用于编写高速可移植非阻塞 IO 应用的库。

1.libevent包含组件

a.evutil:用于抽象不同平台网络实现差异的通用功能。比如window 的socket,需先初始化WSAStartup,最后WSACleanup清除相关协议。linux中没有这些函数。

b.event 和 event_base: libevent 的核心。

c.bufferevent: 为 libevent 基于事件的核心提供使用更方便的封装。

d.evbuffer:在 bufferevent 层之下实现了缓冲功能,并且提供了方便有效的访问函数 。

e.evhttp:一个简单的 HTTP 客户端/服务器实现。

f.evdns:一个简单的 DNS 客户端/服务器实现 。

g.evrpc:一个简单的 RPC 实现 。

2.libevent安装

下载地址: http://libevent.org/

1.下载源码

2.解压文件:  tar -zxvf libevent-2.1.12-stable.tar.gz

3.配置: ./configure 

4.编译: make

5.安装: [sudo] make install

安装完成后在/usr/local/lib可以看到安装的库与头文件。

A》ls /usr/local/lib/libevent*

libevent-2.1.so.7            libevent.la
libevent-2.1.so.7.0.1        libevent_openssl-2.1.so.7
libevent.a                   libevent_openssl-2.1.so.7.0.1
libevent_core-2.1.so.7       libevent_openssl.a
libevent_core-2.1.so.7.0.1   libevent_openssl.la
libevent_core.a              libevent_openssl.so
libevent_core.la             libevent_pthreads-2.1.so.7
libevent_core.so             libevent_pthreads-2.1.so.7.0.1
libevent_extra-2.1.so.7      libevent_pthreads.a
libevent_extra-2.1.so.7.0.1  libevent_pthreads.la
libevent_extra.a             libevent_pthreads.so
libevent_extra.la            libevent.so
libevent_extra.so

B》ls /usr/local/include/ev*

evdns.h  event.h  evhttp.h  evrpc.h  evutil.h

event2:
buffer_compat.h       dns.h           http.h            tag_compat.h
bufferevent_compat.h  dns_struct.h    http_struct.h     tag.h
bufferevent.h         event_compat.h  keyvalq_struct.h  thread.h
bufferevent_ssl.h     event-config.h  listener.h        util.h
bufferevent_struct.h  event.h         rpc_compat.h      visibility.h
buffer.h              event_struct.h  rpc.h
dns_compat.h          http_compat.h   rpc_struct.h

这些库各自有什么用途:

1.libevent_core:所有核心的事件和缓冲功能,包含了所有的 event_base、 evbuffer、 bufferevent 和工具函数 .

2.libevent_extra:定义了程序可能需要,也可能不需要的协议特定功能,包括 HTTP、 DNS 和 RPC。

3.libevent: 这个库因为历史原因而存在, 它包含 libevent_core 和 libevent_extra 的内容。 不应该使用这个库,未来版本的 libevent 可能去掉这个库。

4.libevent_pthreads:添加基于 pthread 可移植线程库的线程和锁定实现。

5.libevent_openssl:这个库为使用 bufferevent 和 OpenSSL 进行加密的通信提供支持。

3.基于Qt开发环境配置libevent库

在pro增加以下两句:

LIBS += /usr/local/lib/libevent_core.so \
        /usr/local/lib/libevent_extra.so

INCLUDEPATH += /usr/local/include
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值