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
分享到:
相关推荐
CentOS7上离线安装mosquitto所需rpm包等资源 文章地址: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/142303279
Linux Centos系统安装手册主要涉及了Linux Centos系统安装的介质和方式,以及具体的安装步骤。以下是手册中涉及到的一些关键知识点: 1. Linux Centos系统安装介质和方式: - 双系统安装:这指的是在一台电脑上...
Linux环境下的Mosquitto安装程序是一个关键步骤,用于在服务器上搭建 MQTT (Message Queuing Telemetry Transport) 代理。MQTT 是一种轻量级的消息协议,广泛应用于物联网(IoT)设备之间的通信,因为它具有低开销、...
本《适用于 Linux 的 VMware Horizon Client 安装和设置指南》文档提供了有关在 Linux 客户端系统上安 装、配置和使用 VMware Horizon® Client™ 软件的信息。 本文档中的信息包括安装和使用适用于 Linux 的 ...
linux centos stress离线安装 ,stress-1.0.4.tar,包含附件的,Linux性能压测, 包含sar 命令
在安装mysqlclient时,同样使用`yum install`命令,如`yum install mysql-community-client`。mysqlclient是用于连接MySQL服务器的客户端工具,对于开发和管理MySQL数据库非常有用。 遇到的问题可能包括但不限于...
在Linux CentOS 7环境下,离线安装telnet是一项常见的任务,尤其在无法访问公网的服务器上。本教程将详细介绍如何通过RPM包进行离线安装。以下是一个详细步骤的指导: 1. **检查已安装软件包**: 使用`rpm`命令来...
php7.1.8版本,适用linux centos安装可以
而`apt-get`是Debian和Ubuntu等基于Debian的Linux发行版的包管理器,虽然CentOS默认不支持,但可以通过EPEL(Extra Packages for Enterprise Linux)仓库来安装并使用。 接下来,我们关注Web服务器的安装。Nginx和...
总的来说,"centos 和 linux 6.5 yum包"涉及到的是如何在两个不同的Linux发行版上利用Yum工具管理和安装软件包的过程。了解Yum的工作原理、如何配置仓库以及如何正确处理软件包的安装,对于使用这些系统的系统管理员...
【Linux CentOS 6.8 安装 Node.js 及 Oracledb】 在 CentOS 6.8 上安装 Node.js 和 Oracledb 需要遵循特定步骤,因为这个旧版本的操作系统默认的 GCC 编译器不支持 C++11 特性,而 Node.js 的某些版本需要此特性。...
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,并开启aof持久化模式
Linux Centos 环境 Kettle 部署与定时...Linux Centos 环境 Kettle 部署与定时作业执行需要安装和配置 java 环境,下载和部署 Kettle,配置定时作业执行命令。同时,需要注意一些注意事项,以确保 Kettle 的正常运行。
为了在Linux(比如CentOS 7.4)上使用exFAT,我们需要安装一个名为 `exfat-utils` 和 `exfat-fuse` 的软件包,这两个包提供了exFAT的驱动程序和挂载工具。 安装exFAT驱动的步骤如下: 1. 更新系统包列表: ``` ...
### CentOS (Linux) 离线安装 MongoDB 7.0 详细教程 #### 一、前言 在一些特定的网络环境下,如内网或专网中,由于无法直接访问互联网资源,传统的在线安装方式不可行。对于这种情况,本文将详细介绍如何在 CentOS...
在Linux CentOS离线环境下安装Apache服务器,特别是在没有网络连接的情况下,需要手动下载并准备所有必要的依赖包。这个压缩包文件提供了在这样的环境中成功安装Apache及其扩展模块mod_wsgi所需的所有组件。下面将...
在32位架构的Linux系统上安装特定的应用程序可能会遇到一些挑战,因为随着64位系统的普及,很多软件更新主要面向64位平台。本文将详细介绍如何在32位CentOS系统上安装飞秋(IPMSG)及其安装方法。 飞秋,全称...
Linux CentOS 7 字符安装教程详细步骤 在IT领域,Linux CentOS 7 是一个广泛使用的开源操作系统,尤其在服务器环境中非常流行。它基于RHEL(Red Hat Enterprise Linux),提供了稳定和安全的平台,适合各种企业级...