windows下编译libevent 2.18报错问题

来源:互联网 发布:华为v9网络错误 编辑:程序博客网 时间:2024/05/21 06:57

1、在官网下载libevent 源码后使用VS开发人员编译 




2、进入libevent 目录执行如下语句


nmake  /f     Makefile.nmake  


3、报错如下



4、解决错误,根据错误 在test文件夹下增加一个文件“print-winsock-errors.c”  文件内容如下

#include <winsock2.h>#include <windows.h>#include <stdlib.h>#include <stdio.h>#include "event2/event.h"#include "event2/util.h"#include "event2/thread.h"#define E(x) printf (#x " -> \"%s\"\n", evutil_socket_error_to_string (x));int main (int argc, char **argv){  int i, j;  const char *s1, *s2;  evthread_use_windows_threads ();  s1 = evutil_socket_error_to_string (WSAEINTR);  for (i = 0; i < 3; i++) {    printf ("\niteration %d:\n\n", i);    E(WSAEINTR);    E(WSAEACCES);    E(WSAEFAULT);    E(WSAEINVAL);    E(WSAEMFILE);    E(WSAEWOULDBLOCK);    E(WSAEINPROGRESS);    E(WSAEALREADY);    E(WSAENOTSOCK);    E(WSAEDESTADDRREQ);    E(WSAEMSGSIZE);    E(WSAEPROTOTYPE);    E(WSAENOPROTOOPT);    E(WSAEPROTONOSUPPORT);    E(WSAESOCKTNOSUPPORT);    E(WSAEOPNOTSUPP);    E(WSAEPFNOSUPPORT);    E(WSAEAFNOSUPPORT);    E(WSAEADDRINUSE);    E(WSAEADDRNOTAVAIL);    E(WSAENETDOWN);    E(WSAENETUNREACH);    E(WSAENETRESET);    E(WSAECONNABORTED);    E(WSAECONNRESET);    E(WSAENOBUFS);    E(WSAEISCONN);    E(WSAENOTCONN);    E(WSAESHUTDOWN);    E(WSAETIMEDOUT);    E(WSAECONNREFUSED);    E(WSAEHOSTDOWN);    E(WSAEHOSTUNREACH);    E(WSAEPROCLIM);    E(WSASYSNOTREADY);    E(WSAVERNOTSUPPORTED);    E(WSANOTINITIALISED);    E(WSAEDISCON);    E(WSATYPE_NOT_FOUND);    E(WSAHOST_NOT_FOUND);    E(WSATRY_AGAIN);    E(WSANO_RECOVERY);    E(WSANO_DATA);    E(0xdeadbeef); /* test the case where no message is available */    /* fill up the hash table a bit to make sure it grows properly */    for (j = 0; j < 50; j++) {      int err;      evutil_secure_rng_get_bytes(&err, sizeof(err));      evutil_socket_error_to_string(err);    }  }  s2 = evutil_socket_error_to_string (WSAEINTR);  if (s1 != s2)    printf ("caching failed!\n");  libevent_global_shutdown ();  return EXIT_SUCCESS;}



5、清除然后再次编译OK

nmake  /f     Makefile.nmake  clean      

nmake  /f     Makefile.nmake