mosquitto庫 MQTT 移植到ARM

2021-10-18 13:20:08 字數 2626 閱讀 5209

mqtt(訊息佇列遙測傳輸)是iso 標準(iso/iec prf 20922)下基於發布/訂閱正規化的訊息協議。它工作在 tcp/ip協議族上,是為硬體效能低下的遠端裝置以及網路狀況糟糕的情況下而設計的發布/訂閱型訊息協議,為此,它需要乙個訊息中介軟體 。

mqtt是乙個基於客戶端-伺服器的訊息發布/訂閱傳輸協議。mqtt協議是輕量、簡單、開放和易於實現的,這些特點使它適用範圍非常廣泛。在很多情況下,包括受限的環境中,如:機器與機器(m2m)通訊和物聯網(iot)。其在,通過衛星鏈路通訊感測器、偶爾撥號的醫療裝置、智慧型家居、及一些小型化裝置中已廣泛使用。

root@ubuntu:~/workspace/allwinner/a40i/download# ls

mosquitto-1.6.9.tar.gz openssl-1.1.1h.tar.gz libuuid-1.0.3.tar.gz

1.opensslssl是secure sockets layer(安全套接層協議)的縮寫,可以在internet上提供秘密性傳輸。netscape公司在推出第乙個web瀏覽器的同時,提出了ssl協議標準。其目標是保證兩個應用間通訊的保密性和可靠性,可在伺服器端和使用者端同時實現支援。已經成為internet上保密通訊的工業標準。

2006  tar zxvf openssl-1.1.1h.tar.gz 

2018 cd openssl-1.1.1h/

2035 ./config cc=arm-linux-gnueabihf-gcc no-asm shared --prefix=/home/ybtxr/install/openssl-1.1.1g-arm openssldir=/home/ybtxr/install/openssl-1.1.1g-arm/ssl

2036 vi makefile

2037 make -j8

2041 make

install

–prefix :指定 make install 後生成目錄的路徑,不修改此項則預設為 openssldir

目錄(/usr/local/ssl)。

shared :生成動態連線庫。

no-asm: 是在交叉編譯過程中不使用彙編****加速編譯過程,原因是它的彙編**是對 arm 格式不支援的

如果 makefile 中有 -m32 和-m64 就刪掉 -m32 和-m64

2.移植uuid庫

uuid是universally unique identifier的縮寫,它是在一定的範圍內唯一的機器生成的識別符號,使用rfc規範

uuid 是乙個128bit的數字,也可以表現為32個16進製制的字元,中間用」-」分割

3f2504e0-4f89-11d3-9a0c-0305e82c3301

其中的字母是16進製表示,大小寫無關。

2049  tar zxvf libuuid-1.0.3.tar.gz 

2050 cd libuuid-1.0.3/

2052 ./configure --prefix=/home/ybtxr/install/libuuid-1.0.3-arm cc=arm-linux-gnueabihf-gcc --host=arm-linux-gnueabihf

2053 make -j8

2054 make

install

3.移植mosquitto庫

2076  tar zxvf mosquitto-1.6.9.tar.gz 

2077 cd mosquitto-1.6.9/

2078 ls

2079 make with_srvsrv=no cc=arm-linux-gnueabihf-gcc cxx=arm-linux-gnueabihf-g++ cflags=

"-i /home/ybtxr/install/openssl-1.1.1g-arm/include -i /home/ybtxr/install/libuuid-1.0.3-arm/include -i/home/ybtxr/install/openssl-1.1.1g-arm/lib -i/home/ybtxr/install/libuuid-1.0.3-arm/lib" ldflags=

"-l /home/ybtxr/install/openssl-1.1.1g-arm/lib -l/home/ybtxr/install/libuuid-1.0.3-arm/lib -lssl -lcrypto -luuid"

2080 make destdir=/home/ybtxr/install/mosquitto1.6.9-arm install

至此,所有庫移植完成

將libuuid-1.0.3-arm、openssl-1.1.1g-arm、mosquitto1.6.9-arm資料夾複製到工程中,就可以使用了。libuuid-1.0.3-arm、openssl-1.1.1g-arm中包含有靜態庫與動態庫,但mosquitto1.6.9-arm中只有動態庫。

mosquitto 基於MQTT訊息推送

mosquitto note 基於mqtt訊息推送 要解決的問題是 給android手機做訊息推送 自已搭建訊息推送後台 端 中轉訊息,守護程序 mosquitto 傳送訊息客戶端 mosquitto pub 接收訊息客戶端 mosquitto sub 管理密碼檔案 mosquitto passwd...

MQTT協議學習 Mosquitto安裝 測試

1 安裝和常見問題 1.1 安裝測試環境 1.1 安裝 截止2016年5月,最新版本為mosquitto 1.4.8 新建mosquitto目錄並進入目錄 mkdir mosquitto cd mosquitto wget 解壓 tar zxfv mosquitto 1.4.8.tar.gz 進入目...

MQTT協議學習之Mosquitto編譯安裝

系統環境 centos 7.2 解壓 tar zxfv mosquitto 1.4.5.tar.gz 進入目錄 cd mosquitto 1.4.5 編譯安裝 make make install 假如編譯出錯 1.編譯找不到openssl ssl.h 安裝openssl sudo yum y ins...