簡體   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