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
本文来自博客园,作者:浇筑菜鸟,转载请注明原文链接:https://www.cnblogs.com/jzcn/p/15216295.html
如本博客的内容侵犯了你的权益,请与以下地址联系,本人获知后,马上删除。同时本人深表歉意,并致以崇高的谢意! cn_jiaozhu@qq.com