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环境编译+测试实践小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 普通用户crond,linu
- 下一篇: rtos与linux软件开发,实时Lin