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

执行完毕后就可以了

stm32移植paho_paho.mqtt.c开源代码的ARM移植相关推荐

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

    paho.mqtt.c开源代码的ARM移植 1.环境及背景 2.开源资源下载 3.编译过程 3.1编译OpenSSL 3.2编译paho.mqtt.c 1.环境及背景 CSDN上关于paho.mqtt ...

  2. STM32+ESP8266(ESP-12F)物联网温度计-移植paho MQTT协议连接阿里云

    STM32+ESP8266(ESP-12F)物联网温度计-移植paho MQTT协议连接阿里云 目录 STM32+ESP8266(ESP-12F)物联网温度计-移植paho MQTT协议连接阿里云 一 ...

  3. ffmpeg-0.8 移植到 windows 开源代码

    最新 ffmpeg-0.8 移植到 windows 开源代码 Posted on 2011-07-23 10:50  mcodec  阅读(2281) 评论(28)   编辑   收藏   最新 ff ...

  4. ST7735-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    ST7735-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于ST7735 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...

  5. STM32电子时钟 WATCHX-NWATCH( 开源)

    话不多说,先看成果 主页面 目录 游戏 提示:上面的图用的板子是我自己做的c8t6板子 目录 话不多说,先看成果 项目介绍 一.来源 二.项目介绍 1.代码讲解 3.项目的扩展 最后 项目介绍 一.来 ...

  6. C++开源代码项目汇总

    Google的C++开源代码项目 v8  -  V8 JavaScript Engine V8 是 Google 的开源 JavaScript 引擎. V8 采用 C++ 编写,可在谷歌浏览器(来自 ...

  7. 基于DM642的X264开源代码实现的研究

    基于DM642的X264开源代码实现的研究 文章发表于:2008-09-08 11:24 作者:谭超 王库 傅颖 来源:微计算机信息 摘要:本文概述了H.264视频压缩编码标准的主要特性,简要介绍了当 ...

  8. php 区块链算法_PoW/BFT等5种主流区块链共识算法的开源代码实现

    共识算法是实现自主产权区块链的必不可少的关键环节,本文列出社区中相对成熟的区块链共识算法开源实现,包括BFT共识.Raft共识.Paxos共识.PoW共识等,可供希望开发自主产权区块链的团队参考学习. ...

  9. EtherCAT有哪些主流开源代码?它们的优点是什么?

    EtherCAT两大主流开源代码为SOEM和Igh EtherCAT Master. SOEM SOEM 全称 Simple Open EtherCAT Master 优点: 非常易于使用 静态分配内 ...

  10. 嵌入式开发有用的github上的开源代码库

    嵌入式开发有用的github上的开源代码库 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u011559046/article/details/80 ...

最新文章

  1. 编程基础知识科普:C#中的问号运算符
  2. 布赖恩·凯利看好比特币现金:更多的用例可以转化为价值
  3. python语言程序设计——python3的33个保留字
  4. oracle11g知乎,【AAAI】AAAI2020录用论文汇总(二)
  5. Java任务完成后结算_Java执行程序:如何在任务完成时无阻碍地得到通知?
  6. android的fragment讲解
  7. JavaScript判断数组的几种方法
  8. 2017年CSTQB/ISTQB认证考试时间表
  9. 贴片晶振为智能手环带来了哪些功能?
  10. 自动驾驶技术基础——惯导
  11. 如果令 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 分别等于
  12. CCF NOI1107 成人礼
  13. 怎么在一堆身份证中筛选出大于18岁的?
  14. css中“zoom:1”是什么意思
  15. 继承/理解 super和this关键字
  16. keras 受限玻尔兹曼机_目前深度学习的模型有哪几种,适用于哪些问题?
  17. 张家界市4月份计算机职称,2017年4月张家界计算机应用能力考试报名时间4月10日起...
  18. Java开发的电子政务管理系统软件
  19. java kinect 人体识别_基于kinect的人体动作识别系统
  20. 野火STM32F103指南者笔记1.寄存器点亮LED

热门文章

  1. 深入解读Linux进程调度系列(2)——调度类sched_class详解
  2. php换行符sql,如何在PHP和MySQL的textarea中给换行符的同时避免SQL注入?
  3. python中的或运算_python入门:if语句中的逻辑运算符
  4. CNN LeNet-5 AlexNet VGG简介
  5. Hadoop-Streaming实战经验及问题解决方法总结
  6. org.apache.hadoop.fs.ChecksumException: Checksum error
  7. 信息课为什么不叫计算机课,你理解的互联网是这样的吗?为什么叫加入互联网?...
  8. 上海java工作经验与薪资_Java硕士京东工作1年,跳槽后他期望薪资26K,大家感觉他可以吗...
  9. android js 子线程,Android学习笔记:Android中的线程:MainThread 和 WorkerThread
  10. log函数 oracle power_Oracle 函数大全详细介绍