【2023】windows下安装libevent

news2025/1/23 2:09:43

Windows安装libevent

  • 1.安装Visual Studio
  • 2.安装openssl
      • 第一种安装方式:[简便安装](https://slproweb.com/products/Win32OpenSSL.html)
      • 第二种:自己编译openssl
  • 3.libevent
      • 下载libevent
      • 修改文件
        • 1.下边三个文件加入宏定义 #define _WIN32_WINNT 0x0500
        • 2.修改minheap-internal.h
        • 3.修改 Makefile.nmake
        • 4.修改test目录的Makefile.nmake文件
      • 编译

1.安装Visual Studio

自行安装

2.安装openssl

第一种安装方式:简便安装

在这里插入图片描述
点击exe下载安装,然后把安装目录加入系统环境中
详细步骤:windows如果快速安装OpenSSL(懒人安装)

第二种:自己编译openssl

这种方式很麻烦,失败率高,不推荐

3.libevent

下载libevent

libevent
在这里插入图片描述
下载之后解压

修改文件

打开libevent目录

1.下边三个文件加入宏定义 #define _WIN32_WINNT 0x0500

 event_iocp.c 
 evthread_win32.c 
 listener.c 

2.修改minheap-internal.h

在第一行加入

#pragma comment(lib, "Iphlpapi.lib")

然后将文件中的两个UINT32_MAX的宏改成UINT_MAX

3.修改 Makefile.nmake

找到 CFLAGS=$(CFLAGS) /Ox /W3 /wd4996 /nologo (第26行),加上 /Zi 方便调试
在这里插入图片描述

4.修改test目录的Makefile.nmake文件

第六行改为:

SSL_LIBS=..\libevent_openssl.lib $(OPENSSL_DIR)\lib\libssl.lib $(OPENSSL_DIR)\lib\libcrypto.lib gdi32.lib User32.lib Crypt32.lib

在这里插入图片描述
注意:openssl在1.0.x之前的版本中,文件为libeay32.lib和ssleay32.lib,在1.1.x之后的版本中,名字是libssl.lib和libcrypto.lib(这里修改了这两个文件,并追加入了Crypt32.lib)

编译

1.打开visual studio的工具,并进入libevent目录
打开工具

cd /d D:\software\libevent-2.1.12-stable

2.开始编译,OPENSSL_DIR是OPENSSL安装的位置(理论上不加也可以)

nmake /f Makefile.nmake OPENSSL_DIR=D:\software\OpenSSL-Win64

openssl目录结构
在这里插入图片描述

编译的提示信息
在这里插入图片描述

3.测试是否成功

test/regress.exe

在这里插入图片描述

(不需要积分)编译好的文件:https://download.csdn.net/download/weixin_42968584/88339493

文章主要参考:libevent(1)windows下安装libevent

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于卷积神经网络的手写字体识别(详细笔记)

主要参考博客: 1、 基于卷积神经网络的手写数字识别(附数据集完整代码操作说明) 2、用PyTorch实现MNIST手写数字识别(最新,非常详细) 基于卷积神经网络的手写字体识别——目录 1 前言1.1 实现效果1.2 学习背…

国产洗碗机打响超越战

“征服世界的将是这样一些人:开始的时候,他们试图找到梦想中的乐园。最终,当他们无法找到时,就亲自创造了它。”诺贝尔文学奖获得者萧伯纳的这句话,适用于许多中国行业和企业,洗碗机就是其中之一。 对热爱…

十进制小数转换为单双精度浮点数方法

1 将十进制小数转换为单精度浮点数的方法如下: 2. 将十进制小数转换为双精度浮点数的方法如下: 和单精度浮点值转换一样

前端Layui框架介绍

当涉及到前端UI框架时,Layui(简称layui)是一个备受欢迎的框架之一。在这篇博客中,我们将深入了解layui,包括其市场占有率、开发语言、使用场景、框架特点以及一些使用案例。 1. 市场占有率 Layui 是一款流行的前端UI框…

(纯干货建议收藏)大型字符串模拟-超强超全函数技巧总结

这篇文章将会总结一些处理字符串、进制转换等等的常见的、非常有用的技巧和函数。后续会随时更新本文章,希望大家收藏、留言,一起学习进步! 对于特别简单的函数,就不写函数的详细原型啦! 具体包含四部分,…

Xilinx FPGA未使用管脚上下拉状态配置(ISE和Vivado环境)

文章目录 ISE开发环境Vivado开发环境方式1:XDC文件约束方式2:生成选项配置 ISE开发环境 ISE开发环境,可在如下Bit流文件生成选项中配置。 右键点击Generate Programming File,选择Process Properties, 在弹出的窗口选…

《程序员职场工具库》如何优化你的工作 —— PDCA 循环

PDCA 循环简介 PDCA 循环是一种以持续改进为核心思想的管理方法,在全球各个领域得到广泛的应用。它还有好几个别称,叫“质量环”,也叫“戴明环”,也有叫“持续改进螺旋”。 PDCA 循环由四个步骤组成: 计划&#xff…

基于SSM+Vue的中国咖啡文化宣传网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用vUE技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

vector模拟实现——关于模拟中的易错点

前言 vector 本质上类似数组,也可以理解为一种泛型的 string。string 只能存储 char 类型,但是 vector 支持各种内置类型和自定义类型。本次将围绕模拟实现 vector 中遇到的问题进行分析。 文章目录 前言一、确定思路二、实现过程2.1 查阅文档2.2 验证…

4-3 nn.functional和nn.Module

一,nn.functional 和 nn.Module 前面我们介绍了Pytorch的张量的结构操作和数学运算中的一些常用API。利用这些张量的API我们可以构建出神经网络相关的组件(如激活函数,模型层,损失函数)。 其实:Pytorch和神经网络相关的功能组件大…

中小企业数字化转型难?为什么不试试“企业级”无代码平台

首先,让我们思考一下,中小企业为什么要进行数字化转型?随着全球经济的数字化趋势日益明显,中小企业作为经济的重要组成部分,其数字化转型已成为推动经济高质量发展的关键。数字技术可以帮助中小企业提高生产效率、降低…

ctfshow-web-红包题 辟邪剑谱

0x00 前言 CTF 加解密合集CTF Web合集网络安全知识库溯源相关 文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取 0x01 题目 0x02 Write Up 这道题主要是考察mysql查询绕过的问题。 首先访问后看到是一个登录页面,测试注册等无果 扫描目录,发…

Packet Tracer的使用介绍

直接访问 Packet Tracer 的帮助页面、教程视频和在线资源对于了解该软件会更加方便。 单击菜单工具栏右上角的问号图标。单击“帮助”菜单,然后选择“内容”。 b. 通过单击“帮助”>“教程”来访问 Packet Tracer 的教程视频。 菜单栏:提供文件、编辑…

SpringBoot运行原理

目录 SpringBootApplication ComponentScan SpringBootConfiguration EnableAutoConfiguration 结论 SpringbootApplication(主入口) SpringBootApplication public class SpringbootConfigApplication {public static void main(String[] args) {…

Android动态片段

之前创建的片段都是静态的。一旦显示片段,片段的内容就不能改变了。尽管可以用一个新实例完全取代所显示的片段,但是并不能更新片段本身的内容。 之前已经创建过一个基础秒表应用,具体代码https://github.com/MADMAX110/Stopwatch。我们将这个…

发生以下的报错怎么办?

报错问题: 解决办法: 根据你提供的代码和错误信息,问题出在使用了nullptr。这个错误是因为你的编译器不支持C11标准。 nullptr是C11引入的空指针常量。为了解决这个问题,你可以尝试以下两种方法之一: 1. 将nullptr…

想要精通算法和SQL的成长之路 - 可以攻击国王的皇后

想要精通算法和SQL的成长之路 - 可以攻击国王的皇后 前言一. 可以攻击国王的皇后 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 可以攻击国王的皇后 原题链接 这个题目其实并没有涉及到什么很难的算法,其实就是一个简单的遍历题目。核心思想: 以…

CRM系统销售自动化功能如何提高销售效率

销售效率对企业的盈利能力有着至关重要的联系。提高销售效率,就是要提高销售人员的工作效率和销售转化率。那么,企业如何提高销售效率呢?CRM销售自动化功能可以帮助企业实现这一目标。 一、线索管理 线索是指有潜在购买意向的客户&#xff…

kali必杀器之三剑客

Kali常见攻击手段 注意:仅用于教程和科普,切勿做违法之事,否则后果自负 1 网络攻击手段 请正确使用DDos和CC攻击,不要用来做违反当地法律法规的事情,否则后果自负 使用之前kali需要能够上网 参考:kali安装 1.1 DDos攻击…

新加坡打车软件平台Ryde Group申请1700万美元纳斯达克IPO上市

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,新加坡打车软件平台Ryde Group近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票代码为(RYDE)&#x…