Mosquitto-1.5.0开始源码新增了epoll机制,如何编译实现?

简介: Mosquitto-1.5.0开始源码新增了epoll机制,如何编译实现?

好消息!Mosquitto-1.5源码新增了epoll机制。那我们应该如何使用呢?


假设项目是以CMakeLists.txt 构建的.


代码中通过宏 USE_MACRO 作为区分.


...


#ifdef USE_MACRO


...


#endif


我们可以通过在项目中的CMakeLists.txt 中添加如下代码控制代码的开启和关闭.


+ OPTION(USE_MACRO


+  "Build the project using macro"


+  OFF)


+ IF(USE_MACRO)


+  add_definitions("-DUSE_MACRO")


+ endif(USE_MACRO)


1、修改配置文件


\Mosquitto-1.5\CMakeLists.txt,手动新增以下内容


#firecat add

option(WITH_EPOLL "Include epoll support?" ON)

if (${WITH_EPOLL} STREQUAL ON)

   add_definitions("-DWITH_EPOLL")

endif (${WITH_EPOLL} STREQUAL ON)

2、使用CMake编译源码,如果没有安装,请参考:CentOS 7安装cmake 2.8.12.2


在路径\Mosquitto-1.5\执行


cmake .


make


生成的可执行文件在\Mosquitto-1.5\src


---


题外话:


#ifdef WITH_BROKER

WITH_WEBSOCKETS

WITH_BRIDGE


定义了表示服务器,未定义表示客户端。这个宏在使用库libmosquitto.so时会有区别。


庆幸的是,\Mosquitto-1.5\src\CMakeLists.txt文件里面对这几个宏做了特殊处理,当服务器编译时,会使能这些宏;当客户端编译时,则不使能。


作为服务器时,默认值,WITH_BROKER和WITH_BRIDGE是开启的,WITH_WEBSOCKETS未开启。


相关文章
|
7月前
|
算法 Linux API
【Linux系统编程】Linux下删除文件的 API方式以及文件删除机制差异
【Linux系统编程】Linux下删除文件的 API方式以及文件删除机制差异
148 0
|
消息中间件 存储 缓存
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍(1)
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍
2857 0
|
3月前
|
C语言 C++ Windows
QT多插件通信框架CTK编译记录
本文记录了编译QT多插件通信框架CTK的过程,包括编译结果截图、部署配置、Log4Qt编译配置、参考链接和拓展资料。文中提供了详细的编译步骤和配置文件示例,以及相关的资源链接。
QT多插件通信框架CTK编译记录
|
5月前
|
存储 缓存 安全
理解和掌握sync同步包的功能
【7月更文挑战第6天】本文介绍`sync`包在Go中提供了并发控制工具,如Mutex、RWMutex、Cond和Once。文中例子的并发测试显示,Mutex在小并发下表现良好,读写锁在高并发读操作时更有优势。
62 1
理解和掌握sync同步包的功能
|
Linux
linux开发各种I/O操作简析,以及select、poll、epoll机制的对比
linux开发各种I/O操作简析,以及select、poll、epoll机制的对比
285 1
linux开发各种I/O操作简析,以及select、poll、epoll机制的对比
|
Java 程序员 数据库连接
PHP如何使用 PHP 的自动资源回收机制来自动关闭文件句柄?底层原理是什么?
PHP如何使用 PHP 的自动资源回收机制来自动关闭文件句柄?底层原理是什么?
162 0
|
网络协议
Swoole v4.7 版本新特性预览之支持为每个端口设置不同的心跳检测时间
在之前的版本中,多端口监听的心跳检测功能只能配置在主服务上,无法为每个端口单独设置心跳时间。 例如需要在9501端口上设置 30 秒,而9502端口上设置 60 秒。从v4.7版本开始进行了支持.
199 0
|
安全
Docsify CLI v4.4.2版本发布,增加初始化时重写文件问询
此次版本发布,更新了旧版本依赖项中的漏洞,同时也添加一些功能和修复了一个 Bug
182 0
|
存储
Mosquitto-1.5.4源码分析,PUBLISH的实现及函数跳转关系
Mosquitto-1.5.4源码分析,PUBLISH的实现及函数跳转关系
303 0
Mosquitto-1.5.4源码分析,PUBLISH的实现及函数跳转关系
|
消息中间件 Linux Kafka
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍
971 0
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍