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模块的报错
windows上先简单使用libevent,运行demo_第1张图片

关闭依赖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作为启动项,进行运行测试,测试成功。

windows上先简单使用libevent,运行demo_第2张图片

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类似)

windows上先简单使用libevent,运行demo_第3张图片

2:配置lib

Release版本类似,同样需要配置
windows上先简单使用libevent,运行demo_第4张图片

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

windows上先简单使用libevent,运行demo_第5张图片

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

用 telnet 127.0.0.1 9995指令进行测试,现象如下。
windows上先简单使用libevent,运行demo_第6张图片

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

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

你可能感兴趣的:(进程,线程,节点,网络通信,libevent)