最近想做一个HttpServer,其实我找了很多开源库,昨天搞了一晚上的libcurl,感觉太繁重了,后来很多人都推荐用libevent,于是想搞一下。
libevent官网下载最新的libevent-2.1.8-stable.tar,地址:https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
直接用vs 命令行工具编译,我用的是VS2012 X86编译:切换到libevent目录下,执行nmake /f Makefile.nmake,报错:
总体上有两个问题,
1. regress_http.c语法错误
regress_http.c(3611) : error C2059: 语法错误:“.”
regress_http.c(3655) : error C2059: 语法错误:“.”
两个错误,我用notpad++打开看了下。应该是声明初始化出错。改一下就编译成功了
用notpad++打开 找到第3611行和3655行
找到:struct http_server hs = { .port = 0, .ssl = ssl, }; 修改为 struct http_server hs = { 0, ssl, }; 就可以编译成功了。
2.不知道如何生成“print-winsock-errors.obj”
cl /I.. /I../WIN32-Code /I../WIN32-Code/nmake /I../include /I../compat /DHAVE_CONFIG_H /DTINYTEST_LOCAL /Ox /W3 /wd4996 /nologo ..\libevent.lib ws2_32.lib shell32.lib advapi32.lib test-changelist.obj
NMAKE : fatal error U1073: don't know how to make 'print-winsock-errors.obj'
错误原因是找不到print-winsock-errors.c,其他的libevent版本是有这个文件的,于是拷贝过来,在执行顺利通过,产生三个libevent.lib libevent_core.lib libevent_extras.lib
可以去github下载源码直接考到test下就再编译就可以了,我也提供一个我下载好的源码[下载地址:]https://download.csdn.net/download/xuebing1995/10644264