加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Mqtt學(xué)習(xí)筆記--交叉編譯移植(1)

02/12 08:25
4449
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

Mqtt目前在物聯(lián)網(wǎng)行業(yè)的應(yīng)用比較多,mqtt屬于應(yīng)用層的一個(gè)中間件,這個(gè)中間件實(shí)現(xiàn)消息的訂閱發(fā)布機(jī)制。網(wǎng)上介紹Mqtt的實(shí)現(xiàn)原來(lái)的比較多,這里不細(xì)介紹。其實(shí)在我們之前的產(chǎn)品中,自己也開(kāi)發(fā)的有類似的中間件,除了具有訂閱發(fā)布的功能,還有一對(duì)一通信,在Linux系統(tǒng)里實(shí)現(xiàn)不同進(jìn)程間的通信,通信基于TCP、UDP、Unix域套接字。這里要移植Mqtt主要是為了與其他廠家物聯(lián)網(wǎng)產(chǎn)品(傳感器、物聯(lián)網(wǎng)網(wǎng)關(guān)、平臺(tái)等)對(duì)接融合,這里把服務(wù)端和客戶端都做移植。

準(zhǔn)備工作

這里選用的mosquitto進(jìn)行移植,mosquitto依賴openssl和uuid,下面是我選用的版本:

1.?mosquitto-2.0.10.tgz

2.?openssl-3.0.7.tgz

3.?libuuid-1.0.3.tar.gz

編譯

1.?編譯libuuid 解壓編譯tar?xvzf?libuuid-1.0.3.tar.gz
./configure?--prefix=/home/workplace/mqtt/uuid/build-hi3536c/install?CC=arm-hisiv500-linux-gcc

正常執(zhí)行完成后,會(huì)生成Makefile,然后執(zhí)行:make
make?install

2. 編譯lib 解壓編譯:tar?xvzf?openssl-3.0.7.tar.gz
CC=arm-hisiv500-linux-gcc?./config?no-asm?no-async?shared?--prefix=/home/workplace/hi3536c/openssl/install

正常執(zhí)行完成后,會(huì)生成Makefile,然后執(zhí)行:

make
make?install

1.?mosquitto編譯 解壓編譯: ```cpp tar xvzf mosquitto-2.0.10.tar.gz

#我是把以上編譯的uuid和openssl的庫(kù)文件拷貝到了交叉編譯器的lib里,所以下面編譯mosquito時(shí),就沒(méi)有再加路徑 # make WITH_SRV=no CC=arm-none-linux-gcc CXX=arm-none-linux-g++ LDFLAGS="-lssl -lcrypto -luuid -lm -lpthread -ldl"


正常執(zhí)行完成后,會(huì)生成Makefile,然后執(zhí)行:
```bash
make
make?install

編譯問(wèn)題

可能不同的編譯器會(huì)有不同的問(wèn)題,我這里用的海思的編譯器,有一下錯(cuò)誤:

1.?對(duì)‘pthread_setname_np’未定義的引用

代碼如下:

這個(gè)函數(shù)在當(dāng)前編譯器的庫(kù)中不存在,這個(gè)可以直接注釋掉,再次編譯就沒(méi)問(wèn)題了。

測(cè)試

Windows下安裝的mosquito,直接啟動(dòng),用mosquito_sub訂閱,mosquito_pub發(fā)布,看看能不能收到。

啟動(dòng)訂閱:topic為hello

mosquitto_sub?-h?192.168.1.36?-p?1883?-t?"hello"

發(fā)布消息:

mosquitto_pub?-h?192.168.1.36?-p?1883?-t?"hello"?"test?pub?msg"

訂閱這邊接收到的消息:

mosquitto_sub?-h?127.0.0.1?-p?1883?-t?"hello"
test?pub?msg
test?pub?msg
test?pub?msg

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
IL207AT 1 Siemens Transistor Output Optocoupler, 1-Element, 2500V Isolation
暫無(wú)數(shù)據(jù) 查看
9DBV0441AKLFT 1 Integrated Device Technology Inc VFQFPN-32, Reel

ECAD模型

下載ECAD模型
$4.96 查看
AT24C16D-SSHM-B 1 Atmel Corporation EEPROM, 2KX8, Serial, CMOS, PDSO8, 0.150 INCH, GREEN, PLASTIC, MS-012AA, SOIC-8
$0.3 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜