环境:redhat server 5.5 i386
编译工具:gcc-4.1.2 gcc-c++-4.1.2
mosquitto下载地址:http://mosquitto.org/files/source/
配置:
1.在config.mk文件中将图中两项配置为 "no"
如下所示:
这两向是openssl相关的东西,具体作用暂时未知,留待以后发掘。
2.执行make install命令,开始编译,出现如下错误
在mosquitto的代码工程中查找mosquitto_internal.h文件,找到其中包含ares.h的位置
然后在config.mk文件中将WITH_SRV定义的地方改为"no",如图所示
继续执行make install命令。如果出现如上述问题,那么按照相同方法修改即可。
我这边出现了一个install相关的问题
通过查看install的帮助信息,发现install支持的是"S"(大写),而不是"s"(小写)。因此需将文件中用到install -S 的地方做出修改。
将上图中的"-s"修改为"-S",在多个Makefile文件中存在。
再次执行make install,这次就能顺利编译完成。
2.运行mosquitto
在终端中输入mosquitto,出现如下错误
此时需要在/etc/mosquitto/目录下的mosquitto.conf文件中写入"user root",如果没有该文件可以创建。
因为我是用的root登录,所以输入"user root",其他人用"useradd mosquitto"也可行,但是我没测试过。
输入如下命令
其中的warning不用管。
这样mosquitto服务就开始运行了。它会始终挂在这,所以下面不会出现命令行。
3.订阅消息。
重新开一个终端,输入“mosquitto_sub -t mqtt”,其中mqtt为主题名
4.发布消息。
重新开一个终端,输入"mosquitto_pub -h localhost -t mqtt -m "hello world"","hello world"为发布的内容
这样在订阅终端中能看到hello world就表示成功了。