`
can_do
  • 浏览: 258016 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux(CentOS)安装mosquitto client

阅读更多
1> 切换到目录,注意不是src下

cd /data/backup/mosquitto-1.4.5

2> 执行编译操作

# make
set -e; for d in lib client src; do make -C ${d}; done
make[1]: Entering directory `/data/backup/mosquitto-1.4.5/lib'
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -DWITH_SRV -c mosquitto.c -o mosquitto.o
In file included from mosquitto.c:33:
./mosquitto_internal.h:40:20: error: ares.h: No such file or directory
In file included from mosquitto.c:33:
./mosquitto_internal.h:249: error: expected specifier-qualifier-list before ‘ares_channel’
mosquitto.c: In function ‘mosquitto_loop’:
mosquitto.c:880: error: ‘struct mosquitto’ has no member named ‘achan’
mosquitto.c:883: warning: implicit declaration of function ‘ares_fds’
mosquitto.c:883: error: ‘struct mosquitto’ has no member named ‘achan’
mosquitto.c:982: error: ‘struct mosquitto’ has no member named ‘achan’
mosquitto.c:983: warning: implicit declaration of function ‘ares_process’
mosquitto.c:983: error: ‘struct mosquitto’ has no member named ‘achan’
make[1]: *** [mosquitto.o] Error 1
make[1]: Leaving directory `/data/backup/mosquitto-1.4.5/lib'
make: *** [mosquitto] Error 2

3> 修改编译配置文件【config.mk】

# vim ./config.mk
把WITH_SRV:=yes 改成WITH_SRV:=no 就可以编译了

4> g++: Command not found => 两步yum安装

=>yum -y install gcc automake autoconf libtool make
=>yum install gcc gcc-c++
# make
set -e; for d in lib client src; do make -C ${d}; done
make[1]: Entering directory `/data/backup/mosquitto-1.4.5/lib'
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c mosquitto.c -o mosquitto.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c logging_mosq.c -o logging_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c memory_mosq.c -o memory_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c messages_mosq.c -o messages_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c net_mosq.c -o net_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c read_handle.c -o read_handle.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c read_handle_client.c -o read_handle_client.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c read_handle_shared.c -o read_handle_shared.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c send_mosq.c -o send_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c send_client_mosq.c -o send_client_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c socks_mosq.c -o socks_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c srv_mosq.c -o srv_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c thread_mosq.c -o thread_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c time_mosq.c -o time_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c tls_mosq.c -o tls_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c util_mosq.c -o util_mosq.o
cc -Wall -ggdb -O2  -I. -I.. -I../lib -fPIC -DWITH_TLS -DWITH_TLS_PSK -DWITH_THREADING -DWITH_SOCKS -c will_mosq.c -o will_mosq.o
cc -shared  -Wl,--version-script=linker.version -Wl,-soname,libmosquitto.so.1 mosquitto.o logging_mosq.o memory_mosq.o messages_mosq.o net_mosq.o read_handle.o read_handle_client.o read_handle_shared.o send_mosq.o send_client_mosq.o socks_mosq.o srv_mosq.o thread_mosq.o time_mosq.o tls_mosq.o util_mosq.o will_mosq.o -o libmosquitto.so.1  -lrt -lssl -lcrypto -lpthread
ar cr libmosquitto.a mosquitto.o logging_mosq.o memory_mosq.o messages_mosq.o net_mosq.o read_handle.o read_handle_client.o read_handle_shared.o send_mosq.o send_client_mosq.o socks_mosq.o srv_mosq.o thread_mosq.o time_mosq.o tls_mosq.o util_mosq.o will_mosq.o
make -C cpp
make[2]: Entering directory `/data/backup/mosquitto-1.4.5/lib/cpp'
g++ -Wall -ggdb -O2  -I. -I.. -I../lib  -fPIC -c mosquittopp.cpp -o mosquittopp.o
make[2]: g++: Command not found
make[2]: *** [mosquittopp.o] Error 127
make[2]: Leaving directory `/data/backup/mosquitto-1.4.5/lib/cpp'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/data/backup/mosquitto-1.4.5/lib'
make: *** [mosquitto] Error 2
#

5> # /usr/local/bin/mosquitto_sub -h emqx.io -t $SYS/# -q 2 -d

./mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
=>修改libmosquitto.so.1位置
# 创建链接
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
# 更新动态链接库
sudo ldconfig

6> 成功订阅
# /usr/local/bin/mosquitto_sub -h localhost -t $SYS/# -u can_do -P passw0rd -q 2 -d
Client mosqsub/23035-test sending CONNECT
Client mosqsub/23035-test received CONNACK
Client mosqsub/23035-test sending SUBSCRIBE (Mid: 1, Topic: /#, QoS: 2)
Client mosqsub/23035-test received SUBACK
Subscribed (mid: 1): 2

分享到:
评论

相关推荐

    Linux Centos系统安装手册

    Linux Centos系统安装手册主要涉及了Linux Centos系统安装的介质和方式,以及具体的安装步骤。以下是手册中涉及到的一些关键知识点: 1. Linux Centos系统安装介质和方式: - 双系统安装:这指的是在一台电脑上...

    linux环境下的mosquitto安装程序

    Linux环境下的Mosquitto安装程序是一个关键步骤,用于在服务器上搭建 MQTT (Message Queuing Telemetry Transport) 代理。MQTT 是一种轻量级的消息协议,广泛应用于物联网(IoT)设备之间的通信,因为它具有低开销、...

    适用于 Linux 的 VMware Horizon Client 安装和设置 指南

    本《适用于 Linux 的 VMware Horizon Client 安装和设置指南》文档提供了有关在 Linux 客户端系统上安 装、配置和使用 VMware Horizon® Client™ 软件的信息。 本文档中的信息包括安装和使用适用于 Linux 的 ...

    centos7 安装mysql和mysqlclient遇到的坑总结

    在安装mysqlclient时,同样使用`yum install`命令,如`yum install mysql-community-client`。mysqlclient是用于连接MySQL服务器的客户端工具,对于开发和管理MySQL数据库非常有用。 遇到的问题可能包括但不限于...

    linux centos stress离线安装

    linux centos stress离线安装 ,stress-1.0.4.tar,包含附件的,Linux性能压测, 包含sar 命令

    linux centos7 离线安装telnet_b13001216978的博客-CSDN博客_linux离线安装telnet1

    在Linux CentOS 7环境下,离线安装telnet是一项常见的任务,尤其在无法访问公网的服务器上。本教程将详细介绍如何通过RPM包进行离线安装。以下是一个详细步骤的指导: 1. **检查已安装软件包**: 使用`rpm`命令来...

    php7.1.8版本,适用linux centos安装可以

    php7.1.8版本,适用linux centos安装可以

    Linux Centos 一键安装web环境

    而`apt-get`是Debian和Ubuntu等基于Debian的Linux发行版的包管理器,虽然CentOS默认不支持,但可以通过EPEL(Extra Packages for Enterprise Linux)仓库来安装并使用。 接下来,我们关注Web服务器的安装。Nginx和...

    centos7离线安装bison

    centos7离线安装bison

    centos 和 linux 6.5 yum包

    总的来说,"centos 和 linux 6.5 yum包"涉及到的是如何在两个不同的Linux发行版上利用Yum工具管理和安装软件包的过程。了解Yum的工作原理、如何配置仓库以及如何正确处理软件包的安装,对于使用这些系统的系统管理员...

    Linux CentOS 6.8安装nodejs oracledb1

    【Linux CentOS 6.8 安装 Node.js 及 Oracledb】 在 CentOS 6.8 上安装 Node.js 和 Oracledb 需要遵循特定步骤,因为这个旧版本的操作系统默认的 GCC 编译器不支持 C++11 特性,而 Node.js 的某些版本需要此特性。...

    Docker Linux Centos6.5离线安装

    1、已安装的linux (以centos7为例) 2、离线安装包: ①、docker-engine-1.7.1-1.el7.centos.x86_64.rpm(可从以下链接下载http://www.oschina.net/news/64267/docker-1-7-1-final,centos7对应下载链接: ...

    Linux centos7安装redis

    Linux centos7安装redis,并开启aof持久化模式

    Linux挂载exfat 硬盘 ,CentOS 7.4 安装 exfat 驱动 ,亲测可行

    为了在Linux(比如CentOS 7.4)上使用exFAT,我们需要安装一个名为 `exfat-utils` 和 `exfat-fuse` 的软件包,这两个包提供了exFAT的驱动程序和挂载工具。 安装exFAT驱动的步骤如下: 1. 更新系统包列表: ``` ...

    linux centos环境kettle部署与定时作业执行

    Linux Centos 环境 Kettle 部署与定时...Linux Centos 环境 Kettle 部署与定时作业执行需要安装和配置 java 环境,下载和部署 Kettle,配置定时作业执行命令。同时,需要注意一些注意事项,以确保 Kettle 的正常运行。

    linux、centos安装miniconda,方便快捷,适合python开发,里面包含安装包和文档

    本文将详细介绍如何在Linux和CentOS系统上安装Miniconda,以及它如何提升Python开发效率。 首先,了解Miniconda。Miniconda是一个小型的conda安装器,用于安装conda、Python和必要的依赖库。它比Anaconda更小,因此...

    32位centos安装飞秋ipmsg和安装方法

    在32位架构的Linux系统上安装特定的应用程序可能会遇到一些挑战,因为随着64位系统的普及,很多软件更新主要面向64位平台。本文将详细介绍如何在32位CentOS系统上安装飞秋(IPMSG)及其安装方法。 飞秋,全称...

    Linux centos7 字符安装教程

    Linux CentOS 7 字符安装教程详细步骤 在IT领域,Linux CentOS 7 是一个广泛使用的开源操作系统,尤其在服务器环境中非常流行。它基于RHEL(Red Hat Enterprise Linux),提供了稳定和安全的平台,适合各种企业级...

    Linux centos7 安装maven

    Linux centos7 安装maven

Global site tag (gtag.js) - Google Analytics