《Linux下编译libevent源码》讲述了linux下编译libevent源码的方法,本文讲述其在windows平台的编译。
一、下载libevent源码
https://libevent.org/ 下载libevent源码并解压。
二.安装依赖项
下载安装OpenSSL。https://slproweb.com/products/Win32OpenSSL.html
libevent在windows下编译有两种方式,一种是使用命令行编译,一种是通过visual studio编译。下面分别演示这两种方式。
三.使用命令行编译libevent源码
以管理员身份运行Visual Studio的x86本机工具命令提示符。
进入libevent源码目录,执行:
nmake /f Makefile.nmake
编译过程中可能会遇到的报错如下:
1、“uint32_max”未声明的标识符
解决方法:源码目录下的“minheap-internal.h”里面加一句“#include<stdint.h>”
2、无法解析的外部符号 if_nametoindex
解决方法:
test/Makefile.nmake 中加入Iphlpapi.lib
编译成功后,可以看到源码目录下生成了libevent.lib、libevent_extras.lib、libevent_core.lib
四.使用visual studio编译libevent源码
推荐用这种方式编译,因为之后可以用visual studio阅读libevent源码。以管理员身份运行cmake-gui。设置源码目录和生成的工程所在目录。 点击"Configure"按钮。
由于我安装的是vs2019,并且安装的是Win32 OpenSSL,所以设置如下:
然后可能有如下报错:
提示找不到OpenSSL。所以我们还得设置环境变量
设置完后,重新以管理员身份运行cmake-gui,再次"Configure" -> "Generate",发现生成vs工程成功了。
PS:如果cmake-gui设置错了,比如设置错了win32/x64这种参数,则可以通过删除CMakeCache.txt,再重新打开cmake-gui来重新设置。
打开libevent.sln,“解决方案libevent" -> 生成解决方案
可以发现编译成功。
在lib/Debug目录下生成库文件。
在include目录下生成了头文件。