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)

目录
相关文章
|
7月前
|
Java Linux Windows
windows实现自动部署jar包运行程序
windows实现自动部署jar包运行程序
289 0
|
7月前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
7月前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
400 0
|
2月前
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
2月前
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
970 1
|
3月前
|
Windows Python
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
|
3月前
|
小程序 Windows
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
|
4月前
|
芯片 iOS开发 MacOS
Mac上运行windows软件-GPTK
Mac上运行windows软件-GPTK
191 1
|
4月前
|
安全 机器人 程序员
Windows 计划任务每天隔 3 小时运行一次批处理文件详细配置步骤
Windows 计划任务每天隔 3 小时运行一次批处理文件详细配置步骤
462 2
|
4月前
|
JavaScript Windows
electron程序运行在某些 windows 上白屏
electron程序运行在某些 windows 上白屏