安卓移植paho.mqtt.c的那些坑

stm32移植paho_MQTT 协议学习:008-在STM32上移植MQTT 前言通过前面了解MQTT有关概念、分析了有关的报文,我们对于这个协议也有了更深的认识。但纸上谈来终觉浅,绝知此事要躬行。W5500 - 芯片介绍全硬件TCPIP协议栈支持TCP,UDP,ICMP,IPv4,ARP,IGMP,PPPoE协议硬件协议栈不受网络攻击,安全稳定8个独立的硬件Socket,各路通信互不影响 32KB片上缓存供TCP/IP包处理 集成802.3以太网MAC 集成10BaseT... 阅读详情

编译:

mkdir build_android
cd build_android
cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/out_android -DPAHO_BUILD_STATIC=TRUE -DCMAKE_C_COMPILER=arm-linux-androideabi-gcc -DPAHO_BUILD_SAMPLES=TRUE -DPAHO_WITH_SSL=TRUE -DOPENSSL_ROOT_DIR=/home/liuwei/work/intercom/opensource/openssl/openssl-1.0.2q/out_android -DPAHO_BUILD_DOCUMENTATION=TRUE
make -j16

报错:

1、ld: error: cannot find -lpthread

解决方法:将所有-lpthread替换为-pthread,最好直接将整个工程添加到vscode或其他工具中全部替换,因为要替换的地方很多

2、ld: error: cannot find -lrt

解决方法:安卓4.8的工具链中居然没有librt这个库,从安卓SDK中找到这个库粘贴到交叉编译工具链对应目录即可;

3、WebSocket.c:function WebSocket_receiveFrame: error: undefined reference to 'be64toh'

解决方法:除了这个be64toh找不到,be16toh、be32toh,全部都找不到,去找到交叉编译工具链里面的endian.h中发现,安卓的交叉编译工具链中这个几个宏分别被定义成:betoh16、betoh32、betoh64,将源码中用到be16toh、be32toh、be64toh的地方替换成之前的即可;

基于Mqtt协议Paho项目实现Android消息推送 基于Mqtt协议Paho项目实现Android消息推送 服务端的部署 客户端的实现 演示Gif 阅读详情

相关推荐

LoboMQ:基于ESP-NOW的轻量级MQTT兼容协议

MQTT是一种广泛使用的物联网消息协议,其发布/订阅模型为设备解耦与灵活组网提供了基础支撑;但在无Wi-Fi、无IP网络的嵌入式场景中,标准MQTT因依赖TCP/IP栈和远程Broker而难以落地。LoboMQ应运而生——它将MQTT的核心语义(Topic、Publish、Subscribe、通配符)映射至ESP32原生链路层协议ESP-NOW,实现零IP、免Broker、低延迟的本地消息路由。该方案显著降低内存占用(RAM仅12–15 KB)、规避TLS/DHCP开销,并通过MAC白名单机制强化物理层安全

weixin_28793831的博客 147

字节序的多种转换函数

1.最常用的大小端转换函数 uint32_t htonl(uint32_t hostlong); uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); h表示host,指小端,n表示network指大端,l表示32位长整数,s表示16...

qq_34489443的博客 3842

STM32F103+ESP8266对接ONENET MQTT实战指南

MQTT协议是物联网设备上云的核心通信机制,其基于发布/订阅模型实现低带宽、高可靠的数据传输;理解QoS等级、遗嘱消息、Topic命名规范及Client ID生成逻辑,是保障设备稳定接入云平台的技术基础。在嵌入式端,STM32与Wi-Fi模组(如ESP8266)的协同分工——前者专注传感器采集与实时控制,后者专司网络协议栈处理——构成工业级数据链路的关键范式。该方案直面ONENET新版平台强制MQTT接入的现实约束,覆盖固件烧录、硬件信号完整性、物模型映射、Web/App直连WebSocket等全链路工程细

weixin_34015336的博客 692

Linux 大小端转换函数

原文地址:https://blog.csdn.net/jk110333/article/details/7872695 小心不要假设字节序. PC 存储多字节值是低字节为先(小端为先, 因此是小端), 一些高级的平台以另一种方式(大端)工作. 任何可能的时候, 你的代码应当这样来编写, 它不在乎它操作的数据的字节序. 但是, 有时候一个驱动需要使用单个字节建立一个整型数或者相反, 或者它必须与一...

dragon_cdut的博客 5867

onenet MQTTS第三方库paho.mqtt.c-1.3.0 &openssl-OpenSSL_1_0_2q.tar

openssl-OpenSSL_1_0_2q.zip

BUSCO评估基因组的完整性

因为数据库收集的时候找的就是在不同的物种间都是单拷贝的基因,所以说在评估的物种里面应该也是单拷贝的状态才对。基因组层面评估:先去基因组上预测这些基因,再去做评估,如果说给他是一个注释好的基因集,这个时候提供的是一个蛋白集合,它就直接是去进行同源搜索,再去评估,看BUSCO数据库里面的这些单拷贝基因有或者无;首先,tblastn也是同源搜索,同源搜索之后,去对转录本进行读码框预测,预测完的结果还是去进行hmmsearch的搜索(hmmsearch是做蛋白质结构域搜索的),最终拿到BUSCO评估结果。

qq_64400864的博客 2959

Building Boost for Android with error “cannot find -lrt”

编辑tools/build/src/tools/gcc.jam rule setup-threading ( targets * : sources * : properties * ){ local threading = [ feature.get-values threading : $(properties) ] ; if $(threading) = multi { ...

weixin_34393428的博客 518

达梦数据库集群部署(主备)

达梦数据库集群部署(主备)

m0_71845127的博客 1461

MQTT开源协议栈paho.mqtt.c 移植到安卓平台及测试过程

Paho代码下载: 1 2 gitclonehttps://github.com/eclipse/paho.mqtt.c.git cdpaho.mqtt.c 添加根目录下的Android.mk文件: 1 2 3 4 5 6 7 8 9 10 11 ...

ahducheng的博客 1554

PyMiMi实战指南:midas_api配置与连接测试详解

本文详细介绍了PyMiMi库中midas_api的配置与连接测试全流程。从环境准备、API密钥获取,到核心的url_cfg配置函数使用,再到通过test_url进行连接验证,提供了清晰的步骤和代码示例。文章重点解析了配置原理、常见错误排查方法(如401错误、连接超时),并强调了API密钥的安全性管理,帮助用户稳固建立Python与Midas Civil NX之间的自动化通信桥梁。

weixin_29044713的博客 686

长期换衣行人重识别(Long-Term Clothes-Changing Person Reid)数据集汇总

长期换衣行人重识别任务中目前常用的数据集总览目前换衣数据集的主要问题数据集换衣/总体情况集统计DeepChange(2021)LaST(2021)COCAS(2020)VC-Clothes(2020)LTCC(2020)PRCC(2019)Celebrities-reID(2019) 总览 在长期换衣行人重识别的任务当中,数据集的获取(尤其是对于学术环境下)是一个难点,主要的困难有以下几点: 采集大规模的数据集比较困难。 采集不同的衣服的数据集比较困难。 采集不同衣服不同角度的数据集比较困难。 目前也有

KingsMan666的博客 8378

Android paho.mqtt.android编译及运行

Android简单MQTT使用一、前言1.搭建mqtt服务器1.1Windows下载1.2解压1.3创建实例1.4查看登录用户名和密码,查看端口1.5启动/暂停MQTT服务器1.6打开Mqtt首页2.编译运行mqtt客户端2.1运行其中的sample二、尾言 一、前言 什么是mqtt协议,相信这位老哥比我讲解的好,那么我就来介绍一下简单、快速的使用方法。方法只需两步: 搭建mqtt服务器。 运行mqtt客户端测试连接。 1.搭建mqtt服务器 我这边采用的是ActiveMQ 5.16.4下载地址。 1.

qq_42778348的博客 3645

Zabbix监控联想服务器XCC的SNMPv3配置实战

本文详细介绍了如何通过SNMPv3协议配置Zabbix监控联想服务器XCC的实战方法。文章从安全角度阐述了选择SNMPv3的必要性,并分步讲解了在XCC中启用SNMPv3、创建认证用户,以及在Zabbix中导入专用模板、创建主机并关联模板的完整流程,帮助运维人员实现对服务器硬件健康状态的自动化、安全监控。

weixin_29210727的博客 464

paho.mqtt.c跨平台编译指南:Windows、Linux、macOS一键构建

paho.mqtt.c是一款适用于Windows、Linux和macOS的Eclipse Paho C客户端库,本文将为你提供简单快速的跨平台编译指南,帮助你轻松构建该库。 ## 一、环境准备 在开始编译之前,需要确保你的系统中安装了以下工具: 1. CMake(3.10或更高版本) 2. 合适的C编译器(如GCC、Clang或MSVC) 3. Git ## 二、获取源码 首先,克隆pa

gitblog_00913的博客 686

【安卓逆向】python版本 sha源码

免责声明本文内容仅供学习交流使用,严禁用于商业和非法用途。抓包数据、敏感网址以及数据接口已进行脱敏处理。 注:如有引用,请标注文章地址!!!!!!!

Coodekun的博客 816

innovus:Patch Wire(补丁线)

1)选中wire ,shift+A使用Edit Route功能,F3打开edit route对话框。线道Create Patch Wire,设置好层次和宽度。在修补一些min area的drc时,会有一些danling wire的drc冒出来,为了避免这些假错,可以使用工具patch wire功能。2)沿着选中的wire画线即可。如下图,patch wire和regular wire是能看出区别的。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1962

mqtt如何发送心跳 安卓_智能设备对接MQTT服务器,实现远程控制设备

引言上一篇介绍了如何在Ubuntu中搭建我们自己的mqtt服务器,今天就来介绍如何将自己的智能设备对接服务器,实现远程控制设备。当然前提需要大家有一个智能设备哦,这里的智能设备可以是ZigBee,wifi,以太网等,总之能够实现网络通讯即可,这里我们以目前非常流行的esp8266 wifi模块为例,其现价比还是蛮高的,几块钱就能带领我们遨游物联网~当然熟悉的stm32等单片机的小伙伴也可以外接以太...

weixin_36277690的博客 684

Python爬虫实战:抓取全球船舶AIS定位数据的全流程指南

AIS(Automatic Identification System)自动识别系统是目前全球航运中用于实时跟踪船只位置的主要技术。名称、MMSI编号、呼号实时经纬度船速、航向吃水、目的港状态(航行/停泊/锚泊)航线信息等🛰️海上运输监控:追踪航线,预估到港时间;🛳️船舶管理系统:为物流、港口运营提供决策依据;🌊研究分析:如海洋运输碳排放研究、船只拥堵热力图等;🧠人工智能训练数据集:用于轨迹预测、碰撞预警模型。

2201_76125261的博客 1363

STM32+W5500+MQTT+Android实现远程数据采集及控制

转自:http://www.embed-net.com/thread-230-1-1.html 0 前言 最近在学习MQTT,发现MQTT还是挺好用的,于是花了点时间做了一个简单的应用示例,希望能给需要做这方面的人一些参考。 相关背景知识:http://www.embed-net.com/thread-224-1-1.html 具体功能为: 1,STM32F405为主控芯

WIZnet2012专栏 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

mqtt如何发送心跳 安卓_esp8266连接自己搭建的mqtt服务器,实现远程控制

引言上一篇介绍了如何在Ubuntu中搭建我们自己的mqtt服务器,今天就来介绍如何将自己的智能设备对接服务器,实现远程控制设备。当然前提需要大家有一个智能设备哦,这里的智能设备可以是ZigBee,wifi,以太网等,总之能够实现网络通讯即可,这里我们以目前非常流行的esp8266 wifi模块为例,其现价比还是蛮高的,几块钱就能带领我们遨游物联网~当然熟悉的stm32等单片机的小伙伴也可以外接以太...

weixin_33375360的博客 909

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

基于mqtt的消息推送(三)客户端实现

MQTT简介 mqtt基于订阅者模型架构,客户端如果互相通信,必须在同一订阅主题下,即都订阅了同一个topic,客户端之间是没办法直接通讯的。订阅模型显而易见的好处是群发消息的话只需要发布到topic,所有订阅了这个topic的客户端就可以接收到消息了。 发送消息必须发送到某个topic,重点说明的是不管客户端是否订阅了该topic都可以向topic发送了消息,还有如果客户端订阅了该...

weixin_30414305的博客 1290

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(十)使用domoticz+mosquitto+Android客户端实现控制STM32板上的LED(一)

本文将在前面mini2440建立的domoticz、mosquitto为服务器的基础上,以Android做远程客户端来实现对STM32芯片的开发板的LED进行灯控制,当然,这是一个基本功能的实现,如果长期使用的话,还需要做很多其他的工作(例如断网重连,重连多少次重启系统等等,还要有个可以在SD卡上读入的硬件配置信息等等)。

sqshining的专栏 2548

基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(十一)使用domoticz+mosquitto+Android客户端实现控制STM32板上的LED(二)

本文在前一篇实现了STM32平台利用MQTT协议对接domoticz平台控制LED灯的基础上,完善了网络连接和MQTT的broker连接过程,实现了断网重连功能。

sqshining的专栏 3347

旧手机变身全能开发板:低成本构建物联网网关与边缘计算节点

在嵌入式开发和物联网领域,开发板是连接物理世界与数字世界的核心硬件平台,它集成了处理器、内存、外设接口,用于原型验证和产品开发。其工作原理是通过操作系统和驱动程序管理硬件资源,执行用户程序。开发板的技术价值在于提供了标准化的硬件接口和软件生态,极大降低了硬件开发门槛,加速了从创意到产品的过程。典型应用场景包括智能家居控制节点、工业数据采集、边缘AI推理以及网络附加存储(NAS)等。本文聚焦于利用旧手机这一特殊硬件平台,其内置的高性能SoC、丰富传感器(如陀螺仪、加速度计)和完备通信模块(Wi-Fi、蓝牙),

Eric.Net的专栏 305

【物联网】物联网博客汇总

物联网(Internet of Things,IoT)是指将各种设备、物品、传感器等连接在一起,通过互联网实现彼此之间的交互和通信。这些设备和物品可以是任何东西,包括汽车、家用电器、医疗设备、建筑、工厂设备等等。通过物联网,这些设备和物品可以实现数据共享、远程控制、自动化和智能化等功能,从而提高生产效率、提升生活质量、降低成本、减少浪费。物联网的核心技术包括传感器技术、数据处理技术、网络通信技术、云计算技术、人工智能技术等。

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 949
上一篇: win10自带远程桌面连接linux系统时崩溃的问题
下一篇: 移植gsoap到android
兔子夹心脆
博客等级 码龄10年 7粉丝 31原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值