mqtt移植到imx6ull,包含libuuid和openssl移植

移植mqtt前需要先移植openssh和libuuid

mqtt 源码下载页:
https://mosquitto.org/download/
openssh下载页:
https://github.com/openssl/openssl
libuuid下载页:
https://sourceforge.net/projects/libuuid/
csdn下载页:
https://download.csdn.net/download/qq_32605451/12522397
参考链接:https://blog.csdn.net/Chihiro_S/article/details/104699254

一、新建目录

在ubuntu下新建arm-mqtt文件夹,打开该文件夹新建mqtt、openssh和libuuid三个目录
结果如下:

二、移植libuuid

1、下载libuuid源码,并解压进入该目录
2、配置源码,打开终端输入一下内容
–prefix为安装目录,即新建的libuuid文件夹路径

./configure --prefix=/home/han/linux/tool/mqtt/arm-mqtt/libuuid CC=arm-linux-gnueabihf-gcc --host=arm-linux

在这里插入图片描述
3、编译安装
在终端依次输入

make
make install

在这里插入图片描述
在这里插入图片描述
完成安装,结果如下:
在这里插入图片描述

三、移植openssl

1、下载并解压openssl并进入目录:
2、配置openssl
打开终端输入以下内容:

./config no-asm shared --prefix=/home/han/linux/tool/mqtt/arm-mqtt/openssl
--prefix :指定 make install 后生成目录的路径,即新建的openssl目录
shared :生成动态连接库。
no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码 是对 arm 格式不支持的

3、修改Makefile

  • 打开Makefile,搜索-m32和-m64,如果 Makefile 中有 -m32 和-m64 就删掉 -m32 和-m64。
  • 修改CROSS_COMPILE=arm-linux-gnueabihf-,修改后如下图所示
    在这里插入图片描述
    4、编译并安装
make
make install

安装完成后打开安装目录如下图所示:
在这里插入图片描述

四、移植mqtt

1、下载并解压进入该目录
2、编译源码
打开终端输入如下:

make WITH_SRV=no CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ CFLAGS="-I /home/han/linux/tool/mqtt/arm-mqtt/arm-openssl/include -I /home/han/linux/tool/mqtt/arm-mqtt/arm-libuuid/include -I /home/han/linux/tool/mqtt/arm-mqtt/arm-openssl/lib -I /home/han/linux/tool/mqtt/arm-mqtt/arm-libuuid/lib" LDFLAGS="-L /home/han/linux/tool/mqtt/arm-mqtt/arm-openssl/lib -L /home/han/linux/tool/mqtt/arm-mqtt/arm-libuuid/lib -lssl -lcrypto -luuid"

注意,如果大家这里安装 uuid 和 openssl 的库的时候路径和我的不一致,要把-I 和-L 指
定的库和头文件的路径修改成自己对应安装 uuid 和 openssl 库的路径(即上面编译生成的文件目录路径),否则编译不过去。
3、安装源码
编译完成后安装,输入以下内容:

make DESTDIR=/home/han/linux/tool/mqtt/arm-mqtt/mqtt install

DESTDIR表示安装目录,安装完成后如下图所示:
在这里插入图片描述

五、移植mqtt、openssl,libuuid到开发板

1、把步骤一新建的arm-mqtt文件夹,复制到开发板根目录下,结果如下图:
在这里插入图片描述
打开该目录,内容如下:
在这里插入图片描述
内容为上述步骤编译安装得到的文件。
2、打开/etc/profile文件,配置mqtt环境变量
在文件末尾加上如下内容:

#mqtt
export MQTT_ROOT=/arm-mqtt/mqtt
export OPENSSL_ROOT=/arm-mqtt/openssl
export LIBUUID_ROOT=/arm-mqtt/libuuid
export PATH=$PATH:$MQTT_ROOT/usr/local/bin:$MQTT_ROOT/usr/local/sbin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MQTT_ROOT/usr/local/lib:$OPENSSL_ROOT/lib:$LIBUUID_ROOT/lib

最终结果如下所示:

在这里插入图片描述
保存文件重启开发板
3、测试

  • 首先要在ubuntu安装mosquitto,并启动服务,安装方法自行百度。
  • 安装完成后打开ubuntu中断输入以下内容订阅主题:
mosquitto_sub -h 192.168.1.114 -t "mqtt" -v
-h 表示服务器地址,此处设为本地地址
-t 订阅主题
  • 在开发板终端输入如下内容发布主题:
mosquitto_pub -h 192.168.1.114 -t "mqtt" -m "123"
-h 表示服务器地址,此处设为本地地址
-t 订阅主题
-m 发布内容

测试结果如下,发布的数据跟订阅接收到的数据一致
在这里插入图片描述

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值