windows上先简单使用libevent,运行demo

简介: windows上先简单使用libevent,运行demo

使用libevent

1:获取libevent库。

libevent 官网中获取,这里获取到的版本是libevent-2.1.12-stable.tar

2:windows上编译libevent库(VS2019上使用)

2.1:cmake准备

注:这里要用cmake进行编译,除此之外还需要用到cl连接器。

我在自己安装cmake后用安装后的cmake进行编译时发现有找不到cl指令的问题,

这里直接用vs2019ide下的cmake直接进行编译没有出现问题。

2.2:进行编译

解压压缩包后,在libevent-2.1.12-stable目录下新建build目录

如果直接在build目录下用cmake … 进行编译,会发现有openssl模块的报错

关闭依赖openssl模块,用如下指令进行编译。

D:\software\VS_2019\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake .. -DEVENT__DISABLE_OPENSSL=ON -DEVENT__LIBRARY_TYPE=STATIC -DEVENT__DISABLE_DEBUG_MODE=ON

2.3:build目录下生成了libevent.sln文件

用vs2019打开该项目文件,可以看到,已经正常加载项目,以及有多个模块的测试demo

选择其中一个,这里用time-test作为启动项,进行运行测试,测试成功。

2.4:生成lib库并被其他项目调用

生成对应的debug和release相关库。

指令如下,还是在当前build目录下

D:\software\VS_2019\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake ..  --build . --config Debug
D:\software\VS_2019\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake ..  --build . --config Release

执行后,分别生成对用的debug和Release模块对应的相关lib库和一些测试demo的可执行文件。

对应的lib库参考 build目录下的lib目录,其他项目依赖需要连接该lib目录下的相关库。

对应的一些demo的可执行文件参考build目录下的bin目录,bin目录下可执行文件可执行。

3:供其他项目调用

3.1 准备需要的头文件和链接库

这里主要准备对应的头文件,和需要的链接库。

1:动态连接库可取 libevent-2.1.12-stable\build\lib目录下

2:头文件需要取 libevent-2.1.12-stable\include ,libevent-2.1.12-stable\compat, libevent-2.1.12-stable\WIN32-Code\nmake目录下的头文件,进行合并

3.2 创建项目进行测试

1:vs2019下新建一个项目,点击项目属性,配置头文件 (注意这里配置的debug,如果要测试Release类似)

2:配置lib

Release版本类似,同样需要配置

C:\Users\yun68\Desktop\libevent\lib\Debug\event.lib
C:\Users\yun68\Desktop\libevent\lib\Debug\event_extra.lib
C:\Users\yun68\Desktop\libevent\lib\Debug\event_core.lib
ws2_32.lib
iphlpapi.lib
Advapi32.lib

注: Advapi32.lib这个lib库是在调试中发现有报错,解决问题新增的。

3:拷贝libevent库目录下的sample下的demo进行测试。
3.1 这里拷贝的是 time-test.c 文件内容,直接替换。

最终测试成功,但是遇到过两个问题:

1:需要增加宏 #define _CRT_SECURE_NO_WARNINGS (也可以参考在预编译头中增加对应宏解决)

2:编译的时候注意选择编译的版本相关。 如这种报错,这里应该选择x64

3.2 拷贝hello-world.c下的内容进行测试

用 telnet 127.0.0.1 9995指令进行测试,现象如下。

打算研究一些win上网络库的使用,简单先运行libevent的demo,然后研究看看源码,下一步。

参考:安装和使用libevent - 知乎 (zhihu.com)

目录
相关文章
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
2月前
|
Linux 虚拟化 iOS开发
VMware Fusion 13.6.4 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
VMware Fusion 13.6.4 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
268 3
|
8月前
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
613 2
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
6月前
|
算法 关系型数据库 测试技术
WHQL微软驱动签名方案,让驱动程序在Windows系统流畅运行
WHQL认证(Windows徽标认证)是微软设立的严格测试标准,旨在确保驱动程序的兼容性、稳定性和互通性。本文介绍了三种WHQL微软驱动签名方案:单系统签名、多系统签名和硬件兼容性测试方案,分别满足不同开发商的需求。通过WHQL认证,不仅能消除Windows安装警告,提升用户体验,还能获得“Designed for Windows”徽标授权,入列全球Windows Catalog及HCL产品表,提升品牌权威性和采购优先权。此外,访问微软OCA可获取错误反馈,助力产品质量改进。选择合适的签名方案,让驱动在Windows系统中流畅运行!
|
8月前
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
398 13
|
9月前
|
Linux C# iOS开发
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
200 12
|
11月前
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
11月前
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
4873 1
|
12月前
|
Windows Python
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
|
12月前
|
小程序 Windows
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障