编译安装 MQTT mosquitto 遇到的问题和解法

来源:互联网 发布:河南中小学生消防知 编辑:程序博客网 时间:2024/05/21 10:45

从官网(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

下载源码: wgethttp://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"

0 0
原创粉丝点击