嵌入式Linux系統libmosquitto移植概述

panamera12發表於2020-11-20

mosquitto是一個第三方開源庫,是一款實現了 MQTT v3.1 協議的開源訊息代理軟體,提供輕量級的,支援釋出/訂閱的的訊息推送模式,使裝置對裝置之間的短訊息通訊簡單易用。我們可以基於mosquitto非常簡單的搭建MQTT伺服器和客戶端,並且能夠很好的在嵌入式裝置上進行應用。

MQTT 基礎概念
Broker(服務端, 代理者)                        ---- 使用PC(192.168.100.33:1883)機 執行mosquitto程式即可
Subscriber(客戶端-訂閱者)                  ---- 192.168.100.35 嵌入式板子A
Publisher(客戶端-釋出者)                    ---- 192.168.100.36 嵌入式板子B

方法一

獲取mosquitto開源庫同樣可以通過github和官網兩個方式,我們還是推薦通過官方網站來下載:https://mosquitto.org/

我們使用的版本是1.6.12

預設下載下來編譯是X86,而且會有一些問題,我們需要修改Makefile,vim Makefile

這些地方都是沒有什麼用的,但是會導致編譯問題,因此遮蔽掉!

然後我建立一個指令碼檔案make.sh:

內容很簡單:

執行 ./make.sh就可以進行交叉編譯了!

沒有提示error表示編譯成功:

編譯後我們可以在lib目錄下看到生成的庫檔案:

同樣的,需要確定檔案格式是否正確:

顯示是ARM aarch64表示交叉編譯輸出成功

方法二

交叉編譯 openssl-1.0.1c

tar -zxvf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
./config no-asm shared --prefix=/home/ares/mqtt/ssl-arm
// =====================================================
// 修改Makefile檔案
CC = arm-none-linux-gnueabi-gcc 
AR = arm-none-linux-gnueabi-ar $(ARFLAGS) r
RANLIB = arm-none-linux-gnueabi-ranlib
// =====================================================
make
make install

交叉編譯 mosquitto-1.4.14

tar -zxvf mosquitto-1.4.14.tar.gz
cd mosquitto-1.4.14
// =====================================================
// 修改config.mk檔案
WITH_SRV:=no
WITH_UUID:=no
WITH_WEBSOCKETS:=no
WITH_DOCS:=no
CFLAGS += -I/home/ares/mqtt/ssl-arm/include
LDFLAGS += -L/home/ares/mqtt/ssl-arm/lib -lssl -lcrypto
STRIP?=arm-none-linux-gnueabi-strip
prefix=/home/ares/mqtt/mosquitto-arm
// =====================================================
make CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++
make install

 

相關文章