mqtt linux 编译,MQTT客户端代码X64位Ubuntu环境编译+测试实践小结
https://cloud.baidu.com/doc/IOT/IoTdownload.html#.E4.B8.8B.E8.BD.BDMQTT.E7.9B.B8.E5.85.B3
下载MQTT相关:
下载MQTT客户端代码示例
C代码示例:下载MQTT-c压缩包
//------------------------------------
MQTT-c编译过程记录:
编译流程大体按照MQTT-c文件夹的里头的"使用说明.txt"文件说明;
具体实践步骤如下:
1、下载开源代码 MQTT-c,注意,百度提供的库文件是基于X86平台的库文件,所以编译时需要用x64位的系统;
root@ubuntu:/home/linux/MQTT-c/lib# uname -a
Linux ubuntu 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux ---------->32位系统
root@Linux-host:/home/MQTT-c/lib# uname -a
Linux Linux-host 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux ---------->64位系统
root@ubuntu:/home/linux/MQTT-c/lib# file libpaho-mqtt3cs.so
libpaho-mqtt3cs.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xa7509e4c0208dca4c2989364c72f1555f79a579f, not stripped
如果不注意库文件版本与平台版本不对应的问题,后面用make命令后出现了:
/usr/bin/ld: skipping incompatible......
/usr/bin/ld: cannot find -lpaho-mqtt3cs
的问题,导致编译失败;
2、下载百度mqtt服务的pom认证文件[https://cloud.baidu.com/doc/IOT/IoTdownload.html#.E4.B8.8B.E8.BD.BDTLS.E8.AE.A4.E8.AF.81.E6.96.87.E4.BB.B6],把该root_cert.pem文件放入MQTT-c中
3、进入MQTT-c目录,修改Makefile文件中的LIB_PATH和INCLUDE_PATH路劲如下[假设MQTT-c文件夹放在路径/home/]
LIB_PATH = /home/MQTT-c/lib
INCLUDE_PATH = /home/MQTT-c/include
执行:make all,生成2个可执行文件pub和sub的可执行文件[PublisherSync和SubscriberSync],见图“1.编译完成.jpg”;
查看得知该2个文件也为64位版本:
root@Linux-host:/home/MQTT-c# file PublisherSync
PublisherSync: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x43187a758edceca1cd399ecd77d70649aadede64, not stripped
root@Linux-host:/home/MQTT-c# file SubscriberSync
SubscriberSync: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xbce55aab0f1fad937a531480355586f57ed9a1f6, not stripped
4、把MQTT-c/lib文件夹中的libpaho-mqtt3cs.so.1文件复制到/usb/lib下,不然执行以上2个可执行文件会提示libpaho-mqtt3cs.so.1文件找不到,
直接执行2个可执行文件,检查可执行文件是否可运行,见“2.文件可执行测试[程序打印出参数说明].jpg”,
./PublisherSync
./SubscriberSync
5、使用如下参数格式的命令,进行具体测试命令[注意:要先sub才能pub]:
pub:./PublisherSync ssl://host:port topic message
sub:./SubscriberSync ssl://host:port topic
示例:
SubscriberSyn测试OK[跟百度物接入网页测试端配合]:
SubscriberSyn测试OK[跟百度物接入网页测试端配合]:
SubscriberSyn+PublisherSync同一台机子运行测试OK:
mqtt linux 编译,MQTT客户端代码X64位Ubuntu环境编译+测试实践小结相关推荐
- 64位Ubuntu上编译32位程序
1.确认主机为64位架构的内核,应该输出为adm64,执行: $ dpkg --print-architecture 2.确认打开了多支架功能,应该输出为i386,执行: $ dpkg --print ...
- Linux飞鸽传书源码,图解Ubuntu下编译安装飞鸽传书IPMsg步骤
因为IPMsg官方网站发布的Unix/Linux版本都是源代码包,需要在Ubuntu中编译,因此,需要在本机安装开发环境. 我下载的g2ipmsg-0.9.5.tar,下载地址见http://www. ...
- apollo mqtt linux qt,MQTT第5版更新,以及如何应用到Qt MQTT模块中
之前我曾写过在MQTT消息中的topic可能会对发布的数据量产生较大影响.从那之后,MQTT已经发布了第5版标准并且诞生了第一个实现.当然,Qt MQTT也随之跟进,这篇文章将介绍Qt for Aut ...
- 64位Ubuntu上编译32位程序操作步骤
1. 确认主机为64位架构的内核,应该输出为adm64,执行: $ dpkg --print-architecture 2. 确认打开了多架构支持功能,应该输出为i386,执行: ...
- 在64位Ubuntu上编译32位程序常见错误
问 题1: 找不到头文件 asm/errno.h 解决办法 : [/usr/lib/gcc$ ]sudo ln -s x86_64-linux-gnu/asm asm 问题2:找不到gcc ...
- python编译成c代码_python如何调用c编译好可执行程序
以下总结出几种在Python 中调用 C/C++ 代码的方法 -------------------------------------------------------------------- ...
- 在64位ubuntu gcc 编译 -m32报错
如题: /usr/bin/ld: cannot find Scrt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No ...
- linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解
linux下安装python3和对应的pip环境教程详解 1.下载python3.6的安装包: 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译 ...
- VC MFC C++ MQTT VC编译MQTT VC调用MQTT dll eclipse-paho-mqtt
VC MFC C++ MQTT VC编译MQTT VC调用MQTT dll eclipse-paho-mqtt JS HTML Web端使用MQTT通讯测试 Android Studio MQTT 使 ...
最新文章
- Spring boot的Webjars
- 全球首届“AI球球大作战:Go-Bigger多智能体决策智能挑战赛”开启
- 电话之父贝尔的传奇一生
- asciidoc文件阅读_可搜索的文件? 是的你可以。 选择AsciiDoc的另一个原因
- VUE 解决:Property or method “deleteFun“ is not defined on the instance but referenced during render.
- maven+SSM框架工程搭建
- python整数转换字符串_Python | 将字符串转换为整数列表
- @HystrixCommand 注解的作用与注意事项
- android多个文件夹压缩,android文件或文件夹压缩
- #CSP 201709-1 打酱油
- 雷达的L、S、C、X波段是什么
- FFmpeg入门详解之71:获取ffmpeg转码的实时进度
- android模拟器多点触摸,Windows 7 多点触摸开发模拟器和多点触摸驱动
- 有道云笔记不同步_有道云笔记不能无法同步解决教程
- 观后感 --《当幸福来敲门》和《赢在中国》
- hackthissite 闯关日记
- 数据类型,栈内存、堆内存
- 小程序获取当前进页面的来源
- java中Scanner用法
- 自定义工作流相关思路
热门文章
- InstallShield 2011新功能试用(3)- Script Editor Intellisense
- C++ 传指针还是引用?
- 承载千万级并发的分布式系统架构设计思想
- Linux的mmap内存映射机制解析
- linux下使用expect+scp+shell实现分布式集群系统安装,升级,部署
- Windows10下使用darknet和YOLOV3训练自己的数据集
- 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 3 assignment3
- 数字图像处理实验(8):PROJECT 04-04,Highpass Filtering Using a Lowpass Image
- 【机器学习入门笔记10:TensorFlow矩阵基础】20190217
- 【机器学习入门笔记2:OpenCV图片读取和展示】20190203