嵌入式Linux系統libmosquitto移植概述
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
相關文章
- 把Iptables移植到嵌入式Linux系統(轉)Linux
- [嵌入式]嵌入式系統概述
- Linux系統管理-系統概述Linux
- Linux作業系統概述Linux作業系統
- linux檔案系統概述Linux
- 嵌入式linux應用程式移植方法總結Linux
- Linux嵌入式系統開發,嵌入式Linux開發教程Linux
- 未來蘋果裝置將移植 Linux 系統蘋果Linux
- 系統移植存放位置
- 嵌入式Linux—輸入子系統Linux
- ubuntu移植到嵌入式平臺Ubuntu
- Linux 管理員手冊(1)--Linux系統概述(轉)Linux
- 將 Linux 應用程式移植到 64 位系統上Linux
- 向嵌入式Linux移植實時裝置驅動程式(轉)Linux
- Linux 根檔案系統的移植(從入門到精通)Linux
- libc glossy 嵌入式底層移植
- 小白自制Linux開發板 三. Linux核心與檔案系統移植Linux
- 嵌入式系統基礎知識:瞭解嵌入式系統
- ORACLE系統概述(轉)Oracle
- 推薦系統概述
- ORACLE系統概述(5)Oracle
- ORACLE系統概述(4)Oracle
- ORACLE系統概述(3)Oracle
- ORACLE系統概述(2)Oracle
- 嵌入式Linux作業系統學習規劃Linux作業系統
- 如何移植uCOS-III到Linux系統 How to Port uCOS-III on Linux OSLinux
- 手機移植平板技術 電視裝上 Linux 系統(轉)Linux
- 系統移植——uboot常用命令boot
- 鴻蒙系統freeModbusTcp移植簡介鴻蒙TCP
- 資料庫系統概述資料庫
- 作業系統(1)——作業系統概述作業系統
- 作業系統(一):作業系統概述作業系統
- STM32FATFS檔案系統移植
- LKCOS:基於程式移植的COS系統
- Holer實現外網訪問ARM嵌入式Linux系統Linux
- 怎樣從公網訪問ARM嵌入式Linux系統Linux
- 4 種用於構建嵌入式 Linux 系統的工具Linux
- 【移植Linux 3.4.2核心之四】修改核心程式碼支援YAFFS檔案系統Linux