IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> ARM平台交叉编译|MQTT-mosquitto -> 正文阅读

[嵌入式]ARM平台交叉编译|MQTT-mosquitto

在这里插入图片描述

mosquitto编译方式分为两种:cmake和make。windows、Mac平台使用cmake编译方式,其他平台,包括linux平台,直接使用make进行编译。windows7下编译mosquitto详细介绍了windows7环境下编译mosquitto的步骤。

本文所介绍的内容是关使用于某种ARM平台下的mosquitto的编译步骤。

编译环境

  • 宿主机:Ubuntu 16.04
  • Host: ARM,Cortex-A55
  • 交叉编译器:aarch64-linux-gnu-gcc, 7.2.1 20171011 (Linaro GCC 7.2-2017.11)

编译步骤

mosquitto官方下载最新的mosquitto源码包,本次编译的宿主机是Ubuntu系统,直接使用mosquitto提供的makefile进行编译。编译环境依赖如下:

  • cJSON:为了客户端可以输出cJSON格式的内容,默认打开,通过make WITH_CJSON=no,关闭依赖;
  • openssl:为mosquitto提供ssl支持,默认打开,通过make WITH_TLS=no,关闭依赖;
  • pthreads:为mosquitto提供多线程支持,由于编译环境为linux系统,所以默认支持pthreads API环境。

准备

OpenSSL

openssl的交叉编译步骤可以参考,交叉编译OpenSSL

cJSON

  1. 下载最新的cJSON源码,解压源码。
  2. mkdir build
  3. cmake -DCMAKE_INSTALL_PREFIX=/path/to/install -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++
  4. make
  5. make install

编译

解压mosquitto源码包,执行如下命令编译:

make CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ CFLAGS="-I /path/to/openssl/install/include -I /path/to/cJson/install/include" LDFLAGS="-L /path/to/openssl/install/lib64 -L /path/to/cJson/install/lib -lssl -lcrypto -lcjson"

  • CC和CXX用于指定,目标平台的gcc和g++编译器;
  • CFLAGS:用于指定,openssl和cjson头文件安装目录;
  • LDFLAGS:用于指定,openssl和cjson动态库安装目录;

编译完成之后,执行make install进行安装。

测试

  1. 将cJSON、openssl、mosquitto动态库拷贝到目标系统;
  2. 设置LD_LIBRARY_PATH指定上述三类动态库在目标系统上的安装位置;
  3. 将mosquitto_ctrl mosquitto_passwd mosquitto_pub mosquitto_rr mosquitto_sub测试工具拷贝到目标系统;
  4. 这里以mosquitto_sub为例,测试一下mosquitto订阅功能,示例如下:
mosquitto_sub -h host_addr -p port -u username -P passwd -t the_topic_sub
  • -h:指定mqtt broker的服务器地址;
  • -p:指定mqtt broker的服务器端口号;
  • -u:指定mqtt broker的服务器登录用户名;
  • -P:指定mqtt broker的服务器登录密码;
  • -t: 指定本地订阅的主题。
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:23:57  更:2022-03-11 22:24:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:39:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码