windows 平台使用 VS2017 编译 libevent 源码
一 依赖库编译
先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到。 1)windows 平台使用 VS2017 编译 openssl 源码 (2)运行vs编译环境 打开菜单中VS2017中有对应的命令行工具,把地址复制过来 (3)进入zlib源码吗目录 cd zlib-1.2.11 nmake -f win32/Makefile.msc - 编译好后生成的动态库 zdll.dll zdll.lib 和静态库zlib.lib都在zlib-1.2.11根目录下。 二 libevent编译环境准备 操作系统:windows 10 64位 编译工具:VS2017社区版本 下载地址 http://ffmpeg.club/tools_download.html libevent 2.1.8 源码 下载地址 http://www.libevent.net/download 三 编译libevent源码 1)依赖安装编译 编译工具:VS2017社区版本 下载地址 http://ffmpeg.club/tools_download.html 编译好openssl安装后复制到 D:libopenssl 路径 libevent_openssl.lib 库需要,如果不用此库可以不编译openssl 编译好zlib 安装在D:libeventzlib-1.2.11 新版本libevent已经和zlib分离,但是示例有用zlib,如果不需要此示例可以不编译zlib 2) 编译步骤 (1)进入控制台(运行 CMD),或者编写批处理bat文件 (2)运行vs编译环境 打开菜单中VS2017中有对应的命令行工具,把地址复制过来 编译32位库版本 C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvarsamd64_x86.bat 编译64位库版本 "C:Program Files (x86)Microsoft Visual Studio2017CommunityVCAuxiliaryBuildvcvars64.bat" (3)进入libevent源码吗目录 cd libevent-master (4)清理之前的编译 nmake /f Makefile.nmake clean (5)编译libevent nmake /f Makefile.nmake OPENSSL_DIR=D:libopenssl OPENSSL_DIR 是openssl库的路径,之前版本需要制定zlib库路径,新版本不需要 (6)编译包含了libevent的库项目和示例项目,编译的示例项目由于用了zlib并且openssl版本比较旧,所以会产生问题 3)编译中出现的问题 (1)示例中的openssl问题 出现的问题 编译错误、会显示找不到openssl的ssleay32.lib和libeay32.lib库 原因 旧版本的openssl和新版本采用不同库名 解决方案 打开test目录下的Makefile.nmake 找到 SSL_LIBS=..libevent_openssl.lib $(OPENSSL_DIR)liblibeay32.lib $(OPENSSL_DIR)libssleay32.lib gdi32.lib User32.lib 修改为 SSL_LIBS=..libevent_openssl.lib $(OPENSSL_DIR)liblibssl.lib $(OPENSSL_DIR)liblibcrypto.lib gdi32.lib User32.lib (2)示例中的zlib问题 出现的问题 默认不编译zlib示例,设置编译后找不到zlib库和头文件 解决方案 在编译libevent之前设置编译zlib示例 修改WIN32-Codenmakeevent2event-config.h 添加#define EVENTHAVE_LIBZ 修改原因在示例代码testregress_bufferevent.c 1382行中做了如下判断 #ifdef EVENTHAVE_LIBZ LEGACY(bufferevent_zlib,TT_ISOLATED), #else { "bufferevent_zlib",NULL,TT_SKIP,NULL }, #endif 修改zlib示例的编译项目 打开test目录下的Makefile.nmake 修改LIBS,设置zlib库文件路径 LIBS=..libevent.lib ws2_32.lib shell32.lib advapi32.lib D:libeventzlib-1.2.11zdll.lib 修改CFLAGS添加zlib头文件路径 CFLAGS=/I.. /I../WIN32-Code /I../WIN32-Code/nmake /I../include /I../compat /DHAVE_CONFIG_H /DTINYTEST_LOCAL $(SSL_CFLAGS) -ID:libeventzlib-1.2.11 相关视频如下 https://edu.51cto.com/course/17731.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2008 – 远程桌面:多个用户查看相同的桌面
- 虚拟化 – 虚拟化一个非常遗留的应用程序
- Windows 2003 R2 32位终端服务器上的不稳定性问题
- Windows上每个Java进程的最大内存量?
- windows-server-2003 – 如何在Windows 2003服务器登录屏幕
- windows-server-2008-r2 – windws server 2008 udp组播性能
- Windows服务的“自动(延迟)”模式究竟是什么意思?
- 如何在Windows上的MySQL上运行innodb_force_recovery
- windows-server-2008-r2 – 找出Windows远程桌面服务器(终端
- windows-server-2003 – 我可以在共享存储中使用DFS复制吗?
- 动态 – DLL和LIB文件
- scrollviewer – 当用户在页面之间导航时,在Wind
- windows-server-2008 – 当我使用Powershell将用
- assembly – 缓冲输入的工作原理
- 有没有办法在Windows中加载Python来查看cPickle或
- windows-server-2008 – Windows Server2008 Rem
- 在IIS 8.5中设置uploadReadAheadSize
- active-directory – Windows 7在分支机构上慢速
- 默认Microsoft Windows Update Server
- 存储空间直接Windows Server 2016瞬态错误