#打卡不停更#huaweicloud-iot交叉编译使用 原创

民之码农
发布于 2022-9-29 14:29
浏览
1收藏

@toc

1. 前言

源码下载:https://github.com/huaweicloud/huaweicloud-iot-device-sdk-c
huaweicloud-iot-device-sdk-c(以下简称SDK)帮助设备用MQTT协议快速连接到华为物联网平台。

2.SDK简介

SDK面向运算、存储能力较强的嵌入式终端设备,开发者通过调用SDK接口,便可实现设备与物联网平台的上下行通讯。SDK当前支持的功能有:
支持物模型:设备消息/属性/事件上报,设备命令/消息/属性/事件接收
支持子设备消息转发、子设备管理
支持OTA升级
支持**认证和证书认证两种设备接入方式
支持自定义topic
支持设备影子查询
支持自定义日志收集能力

3.交叉编译源码(以mips-linux-gnu-gcc为例)

3.1 编译zlib

1.下载zlib源码https://github.com/madler/zlib/archive/v1.2.11.zip 通过如下命令解压缩:

 unzip zlib-1.2.11.zip

2.进入源码目录下:

cd zlib-1.2.11

3.配置生成makefile文件

export CC=mips-linux-gnu-gcc
./configure --prefix=/home/weimin/test/iot_libs/bin

4.执行makefile文件

make && make install

在--prefix=指定的目录下生成ibz.so、libz.so.1、libz.so.1.2.11等文件。

3.2 编译openssl

1.访问openssl官网https://www.openssl.org/source ,下载最新版本openssl(如openssl-1.1.1d.tar.gz),上传到linux编译机上(以上传到目录/home/test为例),并使用如下命令解压:

tar -zxvf openssl-1.1.1d.tar.gz

2.执行以下命令进入openssl源码目录:

cd openssl-1.1.1d

3.配置生成makefile文件

./config no-asm shared --prefix=/home/weimin/test/iot_libs/bin --openssldir=/home/weimin/test/iot_libs/bin CROSS_COMPILE=mips-linux-gnu- CC=gcc

4.编译出库。 在openssl源码目录下,运行make depend命令添加依赖:

make depend

运行make命令开始编译:

make

再运行如下命令进行安装:

make install

在配置的openssl安装目录下–prefix=指定目录下找到lib目录,有生成的库文件:
libcrypto.so.1.1、libssl.so.1.1和软链接libcrypto.solibssl.so

3.3 编译paho

1.访问github下载地址https://github.com/eclipse/paho.mqtt.c, 下载最新版本。
2.解压paho.mqtt.c-1.3.10.tar.gz 文件

tar -xvf paho.mqtt.c-1.3.10.tar.gz

3.进入paho.mqtt.c-1.3.10目录下

cd paho.mqtt.c-1.3.10

4.新建目录和进入新建目录下

mkdir build_mips
cd build_mips

5.执行cmake命令

cmake .. -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_STATIC=TRUE -DCMAKE_C_COMPILER=mips-linux-gnu-gcc  -DOPENSSL_ROOT_DIR=/home/weimin/test/iot_libs/bin -DCMAKE_INSTALL_PREFIX=/home/weimin/test/iot_libs/bin -DCMAKE_SYSTEM_NAME=Linux

6.执行编译命令

make && make install

在-DCMAKE_INSTALL_PREFIX=指定的目录下会生成
libpaho-mqtt3as.so和libpaho-mqtt3as.so.1
注意:paho.mqtt.c将使能ssl编译,就是有libpaho-mqtt3as库了

3.5 编译sdk

1.删除huaweicloud-iot-device-sdk-c/lib/目录下的x86-64的库;拷贝交叉编译好的库/home/weimin/test/iot_libs/bin/lib到这个目录huaweicloud-iot-device-sdk-c/lib/下
2.修改CC=gcc为CC =mips-linux-gnu-gcc
3.去掉Makefile中的-m64
执行编译命令:
make

注意:如果编译过程缺少库,则从源码中拷贝/home/weimin/test/iot_libs/bin目录下的include文件到huaweicloud-iot-device-sdk-c/include目录下

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-9-29 16:38:42修改
2
收藏 1
回复
举报
回复
    相关推荐