編譯安裝 MQTT mosquitto 遇到的問題和解法

從官網(http://mosquitto.org/download/)下載了 1.3.5 的版本,解壓後編譯失敗

:~/Downloads/mosquitto-1.3.5$ make

set -e; for d in lib client src; do /Applications/Xcode.app/Contents/Developer/usr/bin/make -C ${d}; done

cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SRV -c mosquitto.c -o mosquitto.o

In file included from mosquitto.c:46:

./mosquitto_internal.h:51:12: fatal error: 'ares.h' file not found

#  include <ares.h>


解決:

缺少 ares 庫,c-ares is a C library for asynchronous DNS requests (including name resolves).    http://c-ares.haxx.se

下載源碼: wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz

解壓 : tar -zxf c-ares-1.10.0.tar.gz

cd c-ares-1.10.0

./configure

sudo make install

然後再回到 mosquitto 的目錄,就可以正常編譯了。

編譯完成會生成四個可執行文件:

:~/Downloads/mosquitto-1.3.5$ mosquitto
mosquitto         mosquitto_passwd  mosquitto_pub     mosquitto_sub

開啓 mosquitto 服務:

mosquitto -c /etc/mosquitto/mosquitto.conf -d
複製庫文件

sudo cp lib/libmosquitto.so.1 /usr/lib
~/Downloads/mosquitto-1.3.5$ ldconfig


測試publish 和 subscribe:

打開兩個終端

一個裏面執行:

mosquitto_sub -c -h localhost -k keepalive -p 1883 -q 1 -t "mosquitto"

另一個執行

 mosquitto_pub -h localhost -p 1883 -q 1 -m "./compiling.txt" -t "mosquitto"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章