您的位置:首页 > 产品设计 > UI/UE

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

2014-12-17 16:05 585 查看
从官网(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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: