繁体   English   中英

使用 Paho MQTT C 和 C++ 库交叉编译代码导致使用非零 QoS 发布时出现问题

[英]Cross compiling code using Paho MQTT C & C++ libraries causing issues when publishing with a nonzero QoS

我尝试使用我的 Windows 机器通过 WSL2 上的 Ubuntu-20.04 为 Raspberry Pi Model 3b 交叉编译一些小的 C++ 代码。 它使用 Paho MQTT C 和 C++ 库来订阅和有时发布一些消息。 我很确定它的大部分工作都是因为 MQTT 订阅工作,以及使用 0 的 QoS 发布消息。

但是,当使用 1 或 2 的 QoS 发布时,我收到运行时错误: MQTT error [-9]: Invalid QoS value

当我尝试使用小于 0 或大于 2 的 QoS 进行发布时,我得到的是: MQTT error [-9]: Bad QoS

我在 RPi 本身中编译了相同的代码,并且代码运行没有任何问题。

我不完全确定发生了什么,但我尝试检查为什么我得到相同的原因代码但不同的错误消息。 It appears that the Bad QoS message is written in mqtt/message.h, which can be found in the C++ library, while the Invalid QoS Value can be found in MQTTAsync.c, from the C library.

据我所知,MQTT 仅支持 3 级 QoS。 QoS 0、1 和 2。因此使用“QoS 小于 0 或大于 2”确实会给出“无效的 QoS 值”错误。 我怀疑交叉编译正在做一些意想不到的事情。 如果您可以分享有关该项目的更多信息,那就太好了。 比如你使用什么 MQTT 代理? 你如何交叉编译等。

谢谢你。 纳文 PS

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM