windows下编译libevent(2.1.8)及使用

摘要:
#包括<ws2tcpip.h>void*arg){printf(“runtimeout_cb1”);}intmain(){#ifdefWIN32WORDwVersionRequested;base=event_base_new();event_assign(&(void*)&tv.tv_usec=0;event_add;

一:获取libevent

github地址:https://github.com/libevent/libevent/releases

下载2.1.8稳定版

二:编译libevent

我是用的visual studio 2010,当然也可以使用更高的版本

windows下编译libevent(2.1.8)及使用第1张

启动后,进入"Libevent-release-2.1.8-stable"所在的目录

windows下编译libevent(2.1.8)及使用第2张

直接执行会报如下错误:

windows下编译libevent(2.1.8)及使用第3张

按照提示分别修改:3611行,3655行内容

struct http_server hs = { .port = 0, .ssl = ssl, };
改为
struct http_server hs = { 0, ssl, };

再次编译会在目录下生成三个静态库:libevent.lib,libevent_core.lib,libevent_extras.lib 表示编译完成。

三:使用libevent实现定时器功能

vs2010新建项目,把三个静态库libevent.lib,libevent_core.lib,libevent_extras.lib,复制到工程下,把include目录复制到工程下,把WIN32-code/nmake/event2下的event-config.h头文件复制到include/event2目录下

新建main.cpp文件,内容如下:

/********************************************************
Copyright (C),  2016-2018,
FileName:		main
Author:        	woniu201
Email:         	wangpengfei.201@163.com
Created:       	2018/11/14
Description:    使用libevent实现定时器功能
********************************************************/
#include <event2/event.h>
#include <event2/bufferevent.h>
#include <event2/event_struct.h>
#include <ws2tcpip.h>

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "wsock32.lib")
#pragma comment(lib, "libevent.lib")
#pragma comment(lib, "libevent_core.lib")
#pragma comment(lib, "libevent_extras.lib")

static void timeout_cb(int fd, short event, void *arg)
{
	printf("run timeout_cb1
");
}

int main()
{
#ifdef WIN32
	WORD wVersionRequested;
	WSADATA wsaData;
	wVersionRequested = MAKEWORD(2, 2);
	(void)WSAStartup(wVersionRequested, &wsaData);
#endif

	struct event_base *base; 
	base = event_base_new(); 
	
	event event1 ;
	event_assign(&event1, base, -1, EV_PERSIST, timeout_cb, (void*) &event1);

	struct timeval tv;
	tv.tv_sec = 1;
	tv.tv_usec = 0;

	event_add(&event1, &tv);
	event_base_dispatch(base);
	getchar();
	return 1;
}

windows下编译libevent(2.1.8)及使用第4张

免责声明:文章转载自《windows下编译libevent(2.1.8)及使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇恢复ICO图标关联centos8 新增ssh自定义端口与屏蔽默认22端口。下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

el-checkbox点击无法回显

问题:动态赋予el-checkbox给isChecked属性时候,前端样式不生效 原因:前端添加checked属性, vue并没有添加get set方法,因此,监听不到checked值变化,进而不能更新view。 方案: 用set方法 this.$set(item2, 'isChecked', true) <!-- * @Author:wht...

自我介绍和博客导览

欢迎来到我的博客。我叫叶伟民,英文名叫Billy。 我能帮到大家的 - 我所翻译和写的书 著作 - RPA+AI (AI部分主要以NLP为核心的OCR、NLP、知识图谱)(预计将于2021年初出版) 翻译 - .NET高级技术书籍<.NET内存管理宝典>(预计将于2021年初出版, 约1100页) 相关blog文章 翻译 - .NET高级技...

注解-组件注册02-@ComponentScan

  当需要扫描一个包下的所有注解时,可以在XML文件中进行配置: <!--包扫描,只要标注了@Controller、@Service、@Reposotory、@Component就可以被加载到spring bean容器--> <context:component-scan base-package="spring_annotation....

linux系统编程:获取glibc的版本号

我的环境是ubuntu16.04 glibc官网:http://www.gnu.org/software/libc/libc.html 方法一、一般来说,涉及到库调用的程序,在链接时候都会链接到glibc,所以,可以用ldd命令来查看 ghostwu@ubuntu:~/c_program/linux_unix/chapter4$ ldd ./pwd | g...

微信小程序,前端大梦想(四)

微信小程序图片轮播及滚动视图          移动端常用效果图片轮播及数据列表已被小程序封装成了组件,这里和大家分享一下如何使用。   Scroll-view   可滚动视图区域 Swiper       图片轮播容器 Navigator    页面链接的3种方式 scroll-view       属性说明如下:            使用竖向滚...

sshfsfuse

fuse這東西已經在2.6.14 kernel裡面可以發現了 。File systems ---> <*> Filesystem in Userspace support 昨天玩了一下sshfs+fuse覺得還真的很方便,有了這東西..不需要再用keychain 來做到遠端rsync備份了。FUSE是userspace的filesyste...