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环境编译+测试实践小结相关推荐

  1. 64位Ubuntu上编译32位程序

    1.确认主机为64位架构的内核,应该输出为adm64,执行: $ dpkg --print-architecture 2.确认打开了多支架功能,应该输出为i386,执行: $ dpkg --print ...

  2. Linux飞鸽传书源码,图解Ubuntu下编译安装飞鸽传书IPMsg步骤

    因为IPMsg官方网站发布的Unix/Linux版本都是源代码包,需要在Ubuntu中编译,因此,需要在本机安装开发环境. 我下载的g2ipmsg-0.9.5.tar,下载地址见http://www. ...

  3. apollo mqtt linux qt,MQTT第5版更新,以及如何应用到Qt MQTT模块中

    之前我曾写过在MQTT消息中的topic可能会对发布的数据量产生较大影响.从那之后,MQTT已经发布了第5版标准并且诞生了第一个实现.当然,Qt MQTT也随之跟进,这篇文章将介绍Qt for Aut ...

  4. 64位Ubuntu上编译32位程序操作步骤

    1.      确认主机为64位架构的内核,应该输出为adm64,执行: $ dpkg --print-architecture 2.      确认打开了多架构支持功能,应该输出为i386,执行: ...

  5. 在64位Ubuntu上编译32位程序常见错误

    问       题1: 找不到头文件 asm/errno.h 解决办法 : [/usr/lib/gcc$ ]sudo ln -s x86_64-linux-gnu/asm asm 问题2:找不到gcc ...

  6. python编译成c代码_python如何调用c编译好可执行程序

    以下总结出几种在Python 中调用 C/C++ 代码的方法 -------------------------------------------------------------------- ...

  7. 在64位ubuntu gcc 编译 -m32报错

    如题: /usr/bin/ld: cannot find Scrt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No ...

  8. linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解

    linux下安装python3和对应的pip环境教程详解 1.下载python3.6的安装包: 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译 ...

  9. 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 使 ...

最新文章

  1. Spring boot的Webjars
  2. 全球首届“AI球球大作战:Go-Bigger多智能体决策智能挑战赛”开启
  3. 电话之父贝尔的传奇一生
  4. asciidoc文件阅读_可搜索的文件? 是的你可以。 选择AsciiDoc的另一个原因
  5. VUE 解决:Property or method “deleteFun“ is not defined on the instance but referenced during render.
  6. maven+SSM框架工程搭建
  7. python整数转换字符串_Python | 将字符串转换为整数列表
  8. @HystrixCommand 注解的作用与注意事项
  9. android多个文件夹压缩,android文件或文件夹压缩
  10. #CSP 201709-1 打酱油
  11. 雷达的L、S、C、X波段是什么
  12. FFmpeg入门详解之71:获取ffmpeg转码的实时进度
  13. android模拟器多点触摸,Windows 7 多点触摸开发模拟器和多点触摸驱动
  14. 有道云笔记不同步_有道云笔记不能无法同步解决教程
  15. 观后感 --《当幸福来敲门》和《赢在中国》
  16. hackthissite 闯关日记
  17. 数据类型,栈内存、堆内存
  18. 小程序获取当前进页面的来源
  19. java中Scanner用法
  20. 自定义工作流相关思路

热门文章

  1. InstallShield 2011新功能试用(3)- Script Editor Intellisense
  2. C++ 传指针还是引用?
  3. 承载千万级并发的分布式系统架构设计思想
  4. Linux的mmap内存映射机制解析
  5. linux下使用expect+scp+shell实现分布式集群系统安装,升级,部署
  6. Windows10下使用darknet和YOLOV3训练自己的数据集
  7. 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 3 assignment3
  8. 数字图像处理实验(8):PROJECT 04-04,Highpass Filtering Using a Lowpass Image
  9. 【机器学习入门笔记10:TensorFlow矩阵基础】20190217
  10. 【机器学习入门笔记2:OpenCV图片读取和展示】20190203