mosquitto移植到ARM
了解mosquitto的小伙伴多数都是想在arm中进行开发,所以将mosquitto移植到ARM板上就尤为重要了,当然也有在x86中进行应用开发的,想了解linux中安装mosquitto可以看我的上一篇文章。
一、材料准备
安装包:openssl、JSON-C、mosquitto
安装环境:ARM板一块
关于安装包的下载参考mosquitto的安装与使用,文章中关于相关源码的下载教程。
二、编译openssl
- 在安装路径下创建openssl文件夹
mkdir openssl
- 解压并进入openssl-1.1.1l目录
tar -vxf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
- 配置安装目录并生成Makefile文件
./config no-asm -shared --prefix=/home/linux/arm-lib/openssl

4. 进入Makefile文件,将编译工具修改为交叉编译链,修改的地方如下
PLATFORM=arm
CROSS_COMPILE=arm-linux-gnueabihf-
- 由于ARM基本的都是32位,所以需要Makefile文件中的‘-m64’删除,如下图所示

- 执行
make编译

7.编译完成后执行make install,会在安装路径中生成相应的文件,如下图所示:

三、编译mosquitto
- 在安装路径下创建mosquitto文件
mkdir mosquitto
- 解压并进入mosquitto-2.0.11目录
tar -vxf mosquitto-2.0.11.tar.gz
cd mosquitto-2.0.11
- 修改config.mk配置文件
修改编译器
CC=arm-linux-gnueabihf-gcc
CXX=arm-linux-gnueabihf-g++
修改配置项

添加安装路径和openssl库路径
WITH_UUID:=no
CC=arm-linux-gnueabihf-gcc
CXX=arm-linux-gnueabihf-g++
prefix=/home/xfg/linux/arm-lib/mosquitto
CFLAGS:=-I/home/xfg/linux/arm-lib/openssl/include
LDFLAGS=-L/home/xfg/linux/arm-lib/openssl/lib -lssl -lcrypto

- 执行
make编译

到此mosquitto的编译已经完成,编译过程中不要使用sudo,不然修改一些不一要的软件导致环境系统的工具无法正常工作。
四、移植mosquitto
将openssl、mosquitto编译生成的库搬运到开板上,这里我使用nfs的方式拷贝文件,如果不会使用nfs的小伙伴可以参考我之前的文章或者百度一下。
- 拷贝openssl,在开发版的‘/usr/local’路径下创建‘ssl’文件,然后将之前编译openssl的文件拷贝到ssl文件中
cd /usr/local
sudo mkdir ssl

- 拷贝mosquitto文件,同样的方式创建‘mosquitto’文件,然后将之前编译mosquitto的文件拷贝到mosquitto文件中
sudo mkdir mosquitto

3. 配置环境路径
#matt start
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ssl/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mosquitto/lib
export PATH=$PATH:/usr/local/ssl/bin
export PATH=$PATH:/usr/local/mosquitto/bin
export PATH=$PATH:/usr/local/mosquitto/sbin

4. 使环境路径生效
source /etc/profile
到此mosquitto移植到ARM板的任务已经完成,jiexia
问题处理
- 移植mosquitto2.0.11版时,编译过程需要cJSON.h文件,所以编译过程中会出现错误../../config.h:86:27: 致命错误: cjson/cJSON.h:没有那个文件或目录

解决方法:
这个问题主要是因为编译生成的openssl库中没有cJSON.h文件,所以只需要将JSON-C移植到openssl的库中,
获取JSON-C库并进入cJSON目录
git clone https://github.com/DaveGamble/cJSON
cd cJSON
修改Makefile文件

编译并安装
make
make install
参考文献
05 --- 移植mosquitto到arm平台:https://blog.csdn.net/m0_50620305/article/details/115676892?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_v2~rank_aggregation-3-115676892.pc_agg_rank_aggregation&utm_term=arm移植+mosquitto&spm=1000.2123.3001.4430
移植安装mosquitto到ubuntu和ARM开发板:https://blog.csdn.net/qq_40452910/article/details/98781922?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_v2~rank_aggregation-5-98781922.pc_agg_rank_aggregation&utm_term=arm移植+mosquitto&spm=1000.2123.3001.4430
mosquitto移植到ARM的更多相关文章
- 将SQLite移植到ARM板上 (转)
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它, 它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够 ...
- 怎样将lua移植到arm平台的linux内核
将脚本移植到内核是一件非常酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核.仅仅可惜仅仅支持x86.不支持arm,在网上搜索了下,没有找到 ...
- iTOP-IMX6UL 实战项目:ssh 服务器移植到 arm 开发板
实验环境:迅为提供的Ubuntu12.04.2 以及虚拟机 编译器:arm-2009q3 编译器 开发板系统:QT系统 开发板使用手册中给Windows 系统安装了 ssh 客户端,给 Ubunt ...
- SQL数据库移植到ARM板步骤
SQL作为一种存储数据的数据结构,具有体积小(能堵存储的数据多),容易移植等优点.例如,在Ubuntu或者ARM开发板上被大量应用.下面就简单说一下SQL移植到ARM板的步骤. 下载源代码 (记得在家 ...
- iTOP-4412开发板-实战教程-ssh服务器移植到arm开发板
本文转自迅为开发板:http://www.topeetboard.com 在前面实战教程中,移植了“串口文件传输工具”,整个移植过程是比较简单的,而且我 们没有做任何协议方面的了解,只是“配置”+“编 ...
- Appweb-6.1.1 移植到ARM
Appweb-6.1.1 移植到ARM 编译环境:ubuntu-12.04 x64 开发平台:Hi3535 arm版 编译版本:appweb-6.1.1.zip ESP下载地址=> ESP we ...
- ffmpeg之移植到ARM
移植方法分为两种:第一种手工移植,第二种buildroot移植. 第一种手工移植: 优点:灵活性高 缺点:重复工作多 一.配置 ./configure --enable-memalign-hack - ...
- Qt 4.7.2移植到ARM教程
Qt的移植包括步骤如下: 1.下载并安装VMware WorkStation 12(最好比较高级的版本,早期的版本共享目录在虚拟机里可能显 示不了). 2.下载ubuntu 14.0.4(最好是lts ...
- Qt5.4.1移植到arm——Linuxfb篇
Qt5与Qt4对比有很大的改变,其最大的特性在于模块化,并且很明显的是不再见到Qt4用到的qws,Qt5新增了QPA系统,基于QPA使得Qt5移 植到一个新平台非常简单而又具有极强的底层扩展能力:同时 ...
- 交叉编译VIM并移植到ARM嵌入式Linux系统
原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任. 众所周知,vim是vi的增强版本,实际体验要比vi好用很多,由于笔者为ARM系统制作的基于busybo ...
随机推荐
- Linux开启SSH连接
1. 查看是否安装 openssh-server:yum list installed | grep openssh-server 已安装成功,如下图 2.如果没有任何输出显示表示没有安装openss ...
- KingbaseES file_dw 介绍
file_dw简介 file_fdw模块提供外部数据包装器file_fdw, 它能被用来访问服务器的文件系统中的数据文件,或者在服务器上执行程序并读取它们的输出. 数据文件或程序输出必须是能够被C ...
- 表名大小写混合时格式问题及sys_dump导出时的注意事项
前言 前几天碰到同事咨询一个有关sys_dump导出时,表名为大小写混合情况的报错问题.因为sys_dump命令运行在linux操作系统上,所以这涉及到linux中shell的语法格式问题. 下面模拟 ...
- Visual Studio快捷键总览,推荐VS+Resharper实现高效开发
VS2022之后,其实还挺好用的,但个人还是习惯VS+Resharper的强强组合,尤其是Ctrl+N快捷键的全局搜,比VS自带的Ctrl+T好用太多了,Ctrl+B还能直接查看反编译之后的dll的方 ...
- #保序回归问题,单调栈,二分#洛谷 5294 [HNOI2019]序列
题目 给定一个长度为 \(n\) 的序列 \(A\),以及 \(m\) 个操作,每个操作将一个 \(A_i\) 修改为 \(k\). 第一次修改之前及每次修改之后,都要求你找到一个同样长度为 \(n\ ...
- C# Dev GridControl小结
1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.Ad ...
- 财务人提高竞争力必备的技能,怎么能少了ta!
从近年来大数据技术的发展趋势和相关产业飞速发展的状态,可以看出当前"数据分析"的热度可以说是有增无减,而且从市场上对数据分析人才的需求缺口也可以看出企业对数据分析的重视程度.未来随 ...
- vue-cli4,vue3打包后页面无内容
这个问题百度了一下,各种各样的的回答都有,试了好多种方法,终于解决这个问题 解决方法: 1.在项目根目录下,新建 vue.config.js, 在文件中输入: module.exports = { ...
- js推送网页到扩展屏上
需求: 电脑上有两个屏幕,想在主屏上的网页中点击一个按钮,副屏就可以显示需要推送过去的网页 实现方法: 本方法使用的是js来实现的,亲测可行,支持火狐,但是不支持谷歌 demo: 主屏网页:1.htm ...
- 家庭实验室系列文章-电脑如何配置网络唤醒 (WOL)?
前言 其实这个专题很久很久之前就想写了,但是一直因为各种原因拖着没动笔. 因为没有资格,也没有钱在一线城市买房 (); 但是在要结婚之前,婚房又是刚需. 我和太太最终一起在一线城市周边的某二线城市买了 ...