编译安装 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"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值