Armadilloフォーラム

mosquitto のヘッダファイルについて

shasegawa

2015年5月11日 12時02分

長谷川です。お世話になっております。

Armadillo-IoT では MQTT クライアントとして mosquitto をサポートしていると思いますが、ATDE5 (atde5-amd64-20150428) において、クロスコンパイルに必要な mosquitto.h を見つけることができませんでした。(共有ライブラリは含まれているようです。)

Linux atde5 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linux
atmark@atde5:~$ find /usr/arm-linux-gnueabi -name "mosquitto.h"
atmark@atde5:~$ find /usr/arm-linux-gnueabi -name "libmosquitto.so*"
/usr/arm-linux-gnueabi/lib/libmosquitto.so.1

Atmark Dist には mosquitto.h が含まれているようですが、こちらを使うのが正しいのでしょうか?

atmark@atde5:~$ find /home/atmark/egypt-ssegw-build-scripts/atmark-dist-20150424/ -name "mosquitto.h"
/home/atmark/egypt-ssegw-build-scripts/atmark-dist-20150424/user/mosquitto/mosquitto-1.3.4/lib/mosquitto.h
atmark@atde5:~$ find /home/atmark/egypt-ssegw-build-scripts/atmark-dist-20150424/ -name "libmosquitto.so*"
atmark@atde5:~$

以上、よろしくお願いします。

コメント

> Armadillo-IoT では MQTT クライアントとして mosquitto をサポートしていると思いますが、ATDE5 (atde5-amd64-20150428) において、クロスコンパイルに必要な mosquitto.h を見つけることができませんでした。(共有ライブラリは含まれているようです。)

"-dev"パッケージを入れる必要があるのでは?

--
なかむら

libmosquitto-dev の armel向けクロスパッケージを作りました。
添付のlibmosquitto-dev-armel-cross_1.3.4-2_all.debを
ATDE5にダウンロードして次のようにインストールしてください。

$ sudo dpkg -i libmosquitto-dev-armel-cross_1.3.4-2_all.deb
ファイル ファイルの説明
libmosquitto-dev-armel-cross_1.3.4-2_all.deb

長谷川です。

> libmosquitto-dev の armel向けクロスパッケージを作りました。
> 添付のlibmosquitto-dev-armel-cross_1.3.4-2_all.debを
> ATDE5にダウンロードして次のようにインストールしてください。
早速の対応、ありがとうございました。

ちなみに、確認なのですが、mosquittoのクロスパッケージは将来的に ATDE5 に含まれるようになるのでしょうか?
それとも、ユーザー側でその都度、追加する必要があるのでしょうか?
menu config で選択する mosquitto が、あくまでもコマンドとしての mosquitto-pub/mosquitto-sub だとすると、後者のような気がしますが。
後者であれば、他にも自前で追加してるクロスパッケージがあるので、一緒に追加するようにします。

以上、よろしくお願いします。

当初 mosquitto-pub/mosquitto-sub の使用のみ想定していたのですが、
devパッケージの ATDE5 へのデフォルトインストールを検討してみます。

もし可能であれば、参考にお聞きしたいのですが、
ヘッダの利用はブローカの開発用でしょうか。それともpub/sub以外
のクライアント開発用またはビルド用でしょうか。

長谷川です。

> もし可能であれば、参考にお聞きしたいのですが、
> ヘッダの利用はブローカの開発用でしょうか。それともpub/sub以外
> のクライアント開発用またはビルド用でしょうか。

クライアント開発用です。外部プロセスとして mosquitto-pub/mosquitto-sub コマンド実行するのではなく、アプリケーションから直接 mosquitto の API を呼び出します。
アプリケーションを全体的に非同期I/Oで作っているので、外部コマンドだとちょっと都合が悪いです。

よろしくお願いします。

教えてくださってありがとうございます。

たしかにxxx_async系の実装を使って元のコードを書き換えるくらいで
あれば、新たに書きたくなります。。