libevent 1.4在vs下的编译调试

最近想看一下源码,大家都推荐了libevent。libevent1.4.13相对libevent2.0简洁很多,所以就拿他入手了。当然还是边调试边学习好些。以下就是vs2012调试libevnet的方法。 其他vs版本应该也是一样的。

1.下载源码 libevent-1.4.13-stable.tar.gz 并解压

2.新建vs工程


3.\libevent-1.4.13-stable\libevent-1.4.13-stable\WIN32-Code 中的所有文件

    \libevent-1.4.13-stable\libevent-1.4.13-stable\WIN32-Code\compat 中sys整个文件夹 (直接拷贝文件夹)

     \libevent-1.4.13-stable\libevent-1.4.13-stable 中的下列文件: 挨着对比下吧,我也这样找的


在工程目录下新建include目录,将这三处拷贝到该目录下。再将include目录中所有的.h .c添加到工程中。如上图所。

将所有.c文件属性改为不使用预编译头。  文件可多选,一起设置。

4.点击项目属性 修改一下选项


预处理器定义HAVE_CONFIG_H _CRT_SECURE_NO_DEPRECATE 这两个



5.在项目的main函数cpp中。

添加头文件#include <winsock2.h>

和 #pragma comment(lib,"ws2_32.lib")


6.好了,可以编译运行了。

7.测试代码:

#include "stdafx.h"
#include <winsock2.h>
#include "event.h"
#include "time.h"
#include "signal.h"
#include "iostream"
	 
#pragma comment(lib,"ws2_32.lib")

void printff(int fd, short what, void *arg)
{
	timeval tv;
	event  *timeEvent = (event *)arg;
	int newtime = (int)time(NULL);

	std::cout<<"时间事件触发"<<std::endl;

	evutil_timerclear(&tv);
	tv.tv_sec = 10;
	raise(SIGBREAK);
	event_add(timeEvent, &tv);
}

int called =0;
void	signal_cb(int fd, short waht, void *arg)
{
	struct event *signal = (event *)arg;

	std::cout<<"信号事件触发"<<std::endl;

	if (called >= 2)
		event_del(signal);

	called++;
}

int _tmain(int argc, _TCHAR* argv[])
{
	event timeout_test;
	event singal_test;
	timeval tv;

	event_init();

	event_set(&timeout_test, -1, 0, printff, &timeout_test);
	event_set(&singal_test, SIGINT, EV_SIGNAL|EV_PERSIST, signal_cb, &singal_test);

	evutil_timerclear(&tv);
	tv.tv_sec = 2;
	event_add(&timeout_test, &tv);
	event_add(&singal_test, NULL);

	event_dispatch();
	return 0;
}

libevent-1.1b ~ 1.4.13-stable ~ 2.0.3-alpha libevent-2.0.3-alpha.tar.gz [GPG Sig] - ChangeLog - Release 2009-11-19 libevent-1.4.13-stable.tar.gz [GPG Sig] - ChangeLog - Release 2009-11-17 libevent-1.4.12-stable.tar.gz [GPG Sig] - ChangeLog - Release 2009-07-24 libevent-2.0.2-alpha.tar.gz [GPG Sig] - ChangeLog - Release 2009-07-24 libevent-1.4.11-stable.tar.gz [GPG Sig] - ChangeLog - Release 2009-05-14 libevent-2.0.1-alpha.tar.gz [GPG Sig] - What's new - Release 2009-04-17 libevent-1.4.10-stable.tar.gz [GPG Sig] - ChangeLog - Release 2009-04-17 libevent-1.4.9-stable.tar.gz [GPG Sig] - ChangeLog - Release 2008-12-12 libevent-1.4.8-stable.tar.gz [GPG Sig] - ChangeLog - Release 2008-09-13 libevent-1.4.7-stable.tar.gz [GPG Sig] - ChangeLog - Release 2008-08-25 libevent-1.4.6-stable.tar.gz [GPG Sig] - ChangeLog - Release 2008-07-24 libevent-1.4.5-stable.tar.gz [GPG Sig] - ChangeLog - Release 2008-06-25 libevent-1.4.4-stable.tar.gz [GPG Sig] - ChangeLog - Release 2008-05-13 libevent-1.4.3-stable.tar.gz [GPG Sig] - ChangeLog - Release 2008-04-07 libevent-1.4.2-rc.tar.gz [GPG Sig] - ChangeLog - Release 2008-02-25 make Solaris event subsystems more reliable; from W.C.A. Wijngaards event_base_get_method(); from Springande Ulv fix HTTP/1.1 chunk formatting; from "propanbutan" allow 64-bit content lengths; from Scott Lamb and more... libevent-1.4.1-beta.tar.gz [GPG Sig] - ChangeLog - Release 2007-12-21 fixed some memory leaks and other misc cleanup; from Christopher Layne, Scott Lamb and Charles Kerr introduced event_reinit to deal with fork() improved efficiency of generated RPC structure performance improvements to Win32 backend and many more... libevent-1.4.0-beta.tar.gz [GPG Sig] - ChangeLog - Release 2007-11-11 a new RPC subsytem for writing distributed clients and servers almost everything is documented via Doxygen now many fixes and improvements to evdns and evhttp libevent now builds two additional libraries: libevent_core (containing only
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值