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[跟百度物接入网页测试端配合]:

d681d1ef7384f746c3aeb24920fb1829.png

SubscriberSyn测试OK[跟百度物接入网页测试端配合]:

96cccb1d78b2ba721cd8680d3e989034.png

SubscriberSyn+PublisherSync同一台机子运行测试OK:

e68ccc8fd560d6a17c16c63d58af444f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值