win10 vs2015 cmake编译使用libevent-2.1.11-stable

libevent

libevent可以简单理解为事件驱动库,它会在下列事件发生时调用回调函数:

  • 指定的事件在fd上发生
  • 定时器触发
  • 信号
  • 超时

使用它可以替代事件驱动的网络服务中的事件循环。应用程序只需要调用 event_dispatch() ,然后就可以在不改动事件循环的情况下动态增删指定的事件。

它支持 /dev/poll, kqueue(2), event ports, POSIX select(2), Windows select(), poll(2), and epoll(4)

关于网络服务的事件通告机制可以参考 The C10K problem

本文介绍在Win10 vs2015环境下对该库的安装和使用,主要对遇到的问题及解决方法作一记录,供参考。

安装方式

使用官方介绍的方式安装:cmake

两种方式:

  1. 直接使用cmake编译安装
> md build && cd build
> cmake -G "Visual Studio 10" ..   # Or use any generator you want to use. Run cmake --help for a list
> cmake --build . --config Release # Or "start libevent.sln" and build with menu in Visual Studio.
  1. 使用cmake生成nmake makefile,再使用nmake安装
> cmake -LH .. # 生成Makefile.nmake
# 使用vs本地命令行工具运行nmake命令完成编译安装

两种方法异曲同工,一种方法能够成功,另一种也一样。

本文主要介绍第一种方式。

详细安装

  1. 在github中下载最新稳定发布版本,release-2.1.11-stable
  2. 解压,打开cmd命令行工具,进入目录
  3. 执行 md build && cd build,这一步就是创建一个目录,不会报错(如果报错,检查权限)
  4. 执行 cmake -G "Visual Studio 14" ..,这里需要生成vs2015的环境,根据自己需要修改

这里可能会遇到各种错误,我遇到的主要有:

  • Could NOT find OpenSSL:由于我不需要该特性,在编译时命令行参数中选择不编译openssl

在这里插入图片描述

  • cmake/Uninstall.cmake.in does not exist:查看了资料,是卸载相关的东西,就修改了cmake文件,略过了

在这里插入图片描述

  • 修改如下:

在这里插入图片描述

最终使用编译命令为:

cmake .. -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Debug -DEVENT__DISABLE_OPENSSL:BOOL=ON -DEVENT__LIBRARY_TYPE:STRING=STATIC -DEVENT__DISABLE_TESTS:BOOL=ON

编译完成的截图:

在这里插入图片描述

  • 其他可设置参数请使用 cmake -LAH 查看。
  1. 安装 cmake --build . --config Debug,根据需要选择参数即可。

编译生成的库位于 lib/Debug/下:

ibevent_core.lib
libevent_extras.lib
libevent.lib
使用

在vs2015项目中,分别创建include和lib目录,并把它们分别添加到项目属性中。

  1. 拷贝生成的3个库到项目lib下,并分别添加到项目属性(包括目录和库名字)
  2. 拷贝libevent-2.1.11-stable目录下的include和WIN32-Code目录下所有文件到项目include下,并把两目录下event2下的头文件合并到一个目录中

至此,设置完毕,可以在项目中使用。

参考资料

libevent – an event notification library
Event notification library
Building and installing Libevent
Can I do “make uninstall” with CMake?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值