從官網(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"