mongoose搭建mqtt客户端

博主在尝试使用github上mongoose的最新源码构建mqtt客户端时遇到编译错误,原因是cc编译器不支持在for循环中定义变量。通过添加-std=c99编译选项虽能解决此问题,但又引入了新的错误,即找不到CLOCK_REALTIME定义。解决方法是不使用-std=c99选项并修改源码。最终,虽然在公司网络下无法连接mqtt服务器,但在家庭环境中成功运行并展示了运行结果。此外,还展示了MQTT.fx图形客户端与不同mqtt服务器的连接测试情况。

        这几天从 github mongoose 下载了 mongoose 的最新代码,然后想用这份代码搭建 mqtt 客户端,然而在编译的时候出现了一些错误,记录如下:

因为这个是源码是 mongoose.c C文件,编译器用的是 cc,然而用 cc 编译时,是不支持 for 循环里定义变量的,C++才支持。错误信息里提示,添加编译选项 -std=c99 也可以支持 for 循环里定义变量,但又会出现新问题。于是在目录mongoose/examples/mqtt-client 下的 Makefile 里添加了编译选项 -std=c99 后,编译,新的错误如下:

提示函数 clock_gettime(CLOCK_REALTIME, &ts); 里的  CLOCK_REALTIME 未定义。man  一下clock_gettime(), 看到需要  #include <time.h>,然后查看 mongoose.h 里,头文件包含都是用宏控制的,看最开头位置有这些定义:

<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值