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)

目录
相关文章
|
2月前
|
Java Linux Windows
windows实现自动部署jar包运行程序
windows实现自动部署jar包运行程序
43 0
|
25天前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
4月前
|
移动开发
【实用】一组原创原生样式的基础控件、UI组件样式(偏向移动端H5页面的样式)
【实用】一组原创原生样式的基础控件、UI组件样式(偏向移动端H5页面的样式)
【实用】一组原创原生样式的基础控件、UI组件样式(偏向移动端H5页面的样式)
|
5月前
|
Web App开发 缓存 安全
让你的win10/win11系统变得不再卡顿,优雅草伊凡整理-长期更新-如何让windows操作系统不用老是重装依然保持流畅运行
如题:让你的win10/win11系统变得不再卡顿,优雅草伊凡整理-长期更新-如何让windows操作系统不用老是重装在不断的更新中依然保持流畅运行 本文长期更新,本次更新2023年11月8日! 很多时候 我们的win10win11系统不管再怎么关闭更新,都会莫名又被打开,莫名的关机和自动更新,总是在你不注意的时候就更新,因此大家也明白微软的厉害了,扯远了,但是频繁的更新会让系统特别卡,传统办法就是重装系统,因而还衍生了很多一件重装工具,但是每一次重装的代价都是巨大的我相信每个同学都明白。
|
1月前
|
Java 关系型数据库 数据库
在Windows上运行Flink
【2月更文挑战第16天】在Windows上运行Flink
65 2
|
1月前
|
前端开发 Java Maven
java集成opencv(不踩坑),实现人脸检测小demo(含上传人像图片识别接口),windows,IDEA,Springboot
java集成opencv(不踩坑),实现人脸检测小demo(含上传人像图片识别接口),windows,IDEA,Springboot
183 0
|
6月前
|
Java 关系型数据库 MySQL
【Java用法】windows10系统下修改jar中的文件并重新打包成jar文件然后运行
【Java用法】windows10系统下修改jar中的文件并重新打包成jar文件然后运行
141 0
|
3月前
|
存储 Ubuntu 关系型数据库
在Windows WSL (Linux的Windows子系统)上运行的Ubuntu 20.04安装Bacula失败
Bacula 是一个开源的跨平台网络备份工具,提供基于客户端/服务器(CS)架构的企业级备份解决方案。它支持对数据进行备份、恢复以及完整性校验,并且可以运行在多种操作系统上,包括 Windows 和 Linux 等。
24 0
|
4月前
|
存储 数据可视化 数据库
InfluxData【付诸实践 01】Windows环境部署Telegraf+Influxdb+Grafana安装及使用配置(含百度云盘资源+demo脚本)
InfluxData【付诸实践 01】Windows环境部署Telegraf+Influxdb+Grafana安装及使用配置(含百度云盘资源+demo脚本)
83 0