libevent框架之前有做过分析,这次是谈谈如何将libevent搭建在vs工作环境下,
并且编写一个demo进行测试。测试过程中会再一次带大家分析消息是怎么传递
的。
我的libevent版本libevent-2.0.22-stable,用对应的vs命令工具进入该目录
我的是Visual Studio 2008版本的Command Prompt
执行成功后在libevent目录下生成三个lib
之后用vs创建控制台项目
生成成功后在项目目录里创建Include和Lib两个文件夹
分别进入libevent这两个目录里边
将内部的所有文件拷贝到Include文件夹里,event内容重复可以合并
我们项目目录Include文件夹下的内容为
将libevent库中的三个lib拷贝到项目的Lib文件夹里
下一步配置项目属性,完成编译
1、配置头文件包含路径,C++/General/Additional Include Directories 配置为相对路径的Include(因配置的路径不同而异)
2、配置代码生成
C/C++ /Code Generation RuntimeLibrary 设置为MTD,因为库的生成是按照这个MTD模式生成的,所以要匹配
3、配置 C/C++ /Advanced/Compile As Compile as C++ Code (/TP) (因为我的工程用到C++的函数所以配置这个)
网上有人推荐配置成TC的也可以,自己根据项目需要
4、配置库目录
Linker/General/Additional Library Directories ..\Lib(根据自己的Lib文件夹和项目相对位置填写)
5配置 Linker\Input\AdditionalLibraries ws2_32.lib;wsock32.lib;libevent.lib;libevent_core.lib;libevent_extras.lib;
6 配置忽略项,可以不配置
输入\忽略特定默认库 libc.lib;msvcrt.lib;libcd.lib;libcmtd.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)
生成lib后,不带调试信息,无法单步进函数里,所以要修改脚本:Makefile.nmake第二行
CFLAGS=$(CFLAGS) /Od /W3 /wd4996 /nologo /Zi
7可以在sample文件夹中找个例子试一下
最后
1. 程序放置的目录不能包含空格!
2.. c文件要包含在项目中!在文件右键属性中设置