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未开启。


相关文章
|
消息中间件 存储 缓存
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍(1)
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍
2621 0
|
1月前
|
存储 缓存 安全
理解和掌握sync同步包的功能
【7月更文挑战第6天】本文介绍`sync`包在Go中提供了并发控制工具,如Mutex、RWMutex、Cond和Once。文中例子的并发测试显示,Mutex在小并发下表现良好,读写锁在高并发读操作时更有优势。
23 1
理解和掌握sync同步包的功能
|
3月前
|
C语言
转载 - gcc/ld 动态连接库和静态连接库使用方法
本文介绍了如何在GCC中实现部分程序静态链接、部分动态链接。使用`-Wl`标志传递链接器参数,`-Bstatic`强制链接静态库,`-Bdynamic`强制链接动态库。
73 0
|
3月前
|
监控 算法 Unix
【Linux 异步操作】深入理解 Linux 异步通知机制:原理、应用与实例解析
【Linux 异步操作】深入理解 Linux 异步通知机制:原理、应用与实例解析
296 0
|
3月前
win32编程 -- 定时消息
win32编程 -- 定时消息
17 0
|
3月前
|
缓存 前端开发 NoSQL
muduo异步日志库模块的实现
muduo异步日志库模块的实现
|
Linux C++ Windows
基于Asio库的定时器,封装实现好用的定时任务
基于Asio库的定时器,封装实现好用的定时任务
|
Linux
linux开发各种I/O操作简析,以及select、poll、epoll机制的对比
linux开发各种I/O操作简析,以及select、poll、epoll机制的对比
263 1
linux开发各种I/O操作简析,以及select、poll、epoll机制的对比
|
JavaScript
nodejs启动机制分析
入口:bootstrap_node.js第612行:startup
nodejs启动机制分析
|
消息中间件 Linux Kafka
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍
889 0
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍