mosquitto移植到ARM


  了解mosquitto的小伙伴多數都是想在arm中進行開發,所以將mosquitto移植到ARM板上就尤為重要了,當然也有在x86中進行應用開發的,想了解linux中安裝mosquitto可以看我的上一篇文章。

一、材料准備

安裝包:openssl、JSON-C、mosquitto
安裝環境:ARM板一塊
關於安裝包的下載參考mosquitto的安裝與使用,文章中關於相關源碼的下載教程。

二、編譯openssl

  1. 在安裝路徑下創建openssl文件夾
mkdir openssl
  1. 解壓並進入openssl-1.1.1l目錄
tar -vxf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
  1. 配置安裝目錄並生成Makefile文件
./config no-asm -shared --prefix=/home/linux/arm-lib/openssl


4. 進入Makefile文件,將編譯工具修改為交叉編譯鏈,修改的地方如下

PLATFORM=arm
CROSS_COMPILE=arm-linux-gnueabihf-
  1. 由於ARM基本的都是32位,所以需要Makefile文件中的‘-m64’刪除,如下圖所示
  2. 執行make編譯

    7.編譯完成后執行make install,會在安裝路徑中生成相應的文件,如下圖所示:

三、編譯mosquitto

  1. 在安裝路徑下創建mosquitto文件
mkdir mosquitto
  1. 解壓並進入mosquitto-2.0.11目錄
tar -vxf mosquitto-2.0.11.tar.gz
cd mosquitto-2.0.11
  1. 修改config.mk配置文件
    修改編譯器
CC=arm-linux-gnueabihf-gcc
CXX=arm-linux-gnueabihf-g++

修改配置項

添加安裝路徑和openssl庫路徑

WITH_UUID:=no

CC=arm-linux-gnueabihf-gcc
CXX=arm-linux-gnueabihf-g++
prefix=/home/xfg/linux/arm-lib/mosquitto
CFLAGS:=-I/home/xfg/linux/arm-lib/openssl/include
LDFLAGS=-L/home/xfg/linux/arm-lib/openssl/lib -lssl -lcrypto

  1. 執行make編譯

    到此mosquitto的編譯已經完成,編譯過程中不要使用sudo,不然修改一些不一要的軟件導致環境系統的工具無法正常工作。

四、移植mosquitto

將openssl、mosquitto編譯生成的庫搬運到開板上,這里我使用nfs的方式拷貝文件,如果不會使用nfs的小伙伴可以參考我之前的文章或者百度一下。

  1. 拷貝openssl,在開發版的‘/usr/local’路徑下創建‘ssl’文件,然后將之前編譯openssl的文件拷貝到ssl文件中
cd /usr/local
sudo mkdir ssl

  1. 拷貝mosquitto文件,同樣的方式創建‘mosquitto’文件,然后將之前編譯mosquitto的文件拷貝到mosquitto文件中
sudo mkdir mosquitto


3. 配置環境路徑

#matt start
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ssl/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mosquitto/lib
export PATH=$PATH:/usr/local/ssl/bin
export PATH=$PATH:/usr/local/mosquitto/bin
export PATH=$PATH:/usr/local/mosquitto/sbin


4. 使環境路徑生效

source /etc/profile

到此mosquitto移植到ARM板的任務已經完成,jiexia

問題處理

  1. 移植mosquitto2.0.11版時,編譯過程需要cJSON.h文件,所以編譯過程中會出現錯誤../../config.h:86:27: 致命錯誤: cjson/cJSON.h:沒有那個文件或目錄

    解決方法:
    這個問題主要是因為編譯生成的openssl庫中沒有cJSON.h文件,所以只需要將JSON-C移植到openssl的庫中,
    獲取JSON-C庫並進入cJSON目錄
git clone https://github.com/DaveGamble/cJSON
cd cJSON

修改Makefile文件

編譯並安裝

make
make install

參考文獻

05 --- 移植mosquitto到arm平台:https://blog.csdn.net/m0_50620305/article/details/115676892?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_v2~rank_aggregation-3-115676892.pc_agg_rank_aggregation&utm_term=arm移植+mosquitto&spm=1000.2123.3001.4430
移植安裝mosquitto到ubuntu和ARM開發板:https://blog.csdn.net/qq_40452910/article/details/98781922?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_v2~rank_aggregation-5-98781922.pc_agg_rank_aggregation&utm_term=arm移植+mosquitto&spm=1000.2123.3001.4430


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM