paho.mqtt.c开源代码的ARM移植

   日期:2020-05-30     浏览:589    评论:0    
核心提示:paho.mqtt.c开源代码的ARM移植1、环境及背景2、开源资源下载3、编译过程3.1编译OpenSSL3.2编译paho.mqtt.c1、环境及背景CSDN上关于paho.mqtt.c的交叉编译教程大部分都是有问题的,或者是胡乱复制的,所以自己在此仔细写此文章分享自己一步一步移植成功的经验,为大家节约时间。虚拟机VM,系统Ubuntu16.04 64位,交叉编译器为arm-openwrt-linux-gcc,交叉编译paho.mqtt.c-master,库包含OpenSSL和mqtt5的功能。嵌入

paho.mqtt.c开源代码的ARM移植

  • 1、环境及背景
  • 2、开源资源下载
  • 3、编译过程
    • 3.1编译OpenSSL
    • 3.2编译paho.mqtt.c

1、环境及背景

CSDN上关于paho.mqtt.c的交叉编译教程大部分都是有问题的,或者是胡乱复制的,所以自己在此仔细写此文章分享自己一步一步移植成功的经验,为大家节约时间。虚拟机VM,系统Ubuntu16.04 64位,交叉编译器为arm-openwrt-linux-gcc,交叉编译paho.mqtt.c-master,库包含OpenSSL和mqtt5的功能。

2、开源资源下载

paho.mqtt.c-master下载地址,下载最新的就行。
OpenSSL下载地址,此次使用的是openssl-1.1.1g.tar.gz。

3、编译过程

3.1编译OpenSSL

因为OpenSSL是paho.mqtt.c-master的一个基础库,所以必须先交叉编译OpenSSL。关于OpenSSL的交叉编译,有一些比较好的文章,贴出来供大家参考。openssl的编译与交叉编译
此处我就不在此赘述OpenSSL的交叉编译了,这块有问题可以留言给我,基本问题不大。

3.2编译paho.mqtt.c

我的OpenSSL交叉编译路径在/home目录下面,路径为/home/zkty/arm-openssl/
备注:zkty是我创建VM虚拟机时自动创建的,其实就是此用户的home根目录。

解压缩在github下载的paho.mqtt.c-master .zip
进入cmake文件夹,可以看到toolchain.linux-arm11.cmake文件,这个文件打开设置交叉编译器参数(前提是你的Ubuntu交叉编译器已经设置好了)。

# path to compiler and utilities
# specify the cross compiler
SET(CMAKE_C_COMPILER arm-openwrt-linux-gcc)

# Name of the target platform
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)

# Version of the system
SET(CMAKE_SYSTEM_VERSION 1)

回到paho.mqtt.c-master路径下,打开命令窗口,切换root用户,执行一下命令:

root@ubuntu:/home/zkty/paho.mqtt.c-master# cmake -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_SAMPLES=TRUE -DPAHO_BUILD_DOCUMENTATION=TRUE -DOPENSSL_ROOT_DIR="/home/zkty/arm-openssl/" -DOPENSSL_LIB_SEARCH_PATH="/home/zkty/arm-openssl/lib/" -DOPENSSL_INC_SEARCH_PATH="/home/zkty/arm-openssl/include/openssl/" -DCMAKE_TOOLCHAIN_FILE=/home/zkty/paho.mqtt.c-master/cmake/toolchain.linux-arm11.cmake /home/zkty/paho.mqtt.c-master

特别注意上述三个参数:
-DOPENSSL_ROOT_DIR="/home/zkty/arm-openssl/"
-DOPENSSL_LIB_SEARCH_PATH="/home/zkty/arm-openssl/lib/"
-DOPENSSL_INC_SEARCH_PATH="/home/zkty/arm-openssl/include/openssl/"
这三个参数是设置OpenSSL的基础库文件的。
-DCMAKE_TOOLCHAIN_FILE=/home/zkty/paho.mqtt.c-master/cmake/toolchain.linux-arm11.cmake /home/zkty/paho.mqtt.c-master
这个参数是设置交叉工具链的。

执行

make -j4 package
执行完毕后就可以了
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服