日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

MQTT再学习 -- 交叉编译与移植

發布時間:2025/3/15 c/c++ 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MQTT再学习 -- 交叉编译与移植 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先說明一下,遇到的問題。我之前在 Ubuntu12.04 gcc 下可以搭建 mqtt 服務器生成的 libmosquitto.so.1。

參看:MQTT再學習 -- 搭建MQTT服務器及測試

現在我要在 DM368 的交叉編譯器 arm-none-linux-gnueabi-gcc ?鏈接共享庫 libmosquitto.so.1。出現問題 ? cannot find -lmosquitto 即共享庫找不到。

然后我想可能是編譯器不匹配 ,然后想用 DM368的交叉編譯器arm-none-linux-gnueabi-gcc 再安裝一遍 mqtt 服務器讓其生成 共享庫 ?libmosquitto.so.1,然后就make出現了一堆的錯誤。


這上面是我在群里發帖咨詢的遇到的問題,現在最終成功解決!!

現在就講一下是怎么操作的。

一、準備工作

上面說的編譯不同造成的無法鏈接共享庫這個是真的,需要重新 make 生成?libmosquitto.so.1。 我們現在的虛擬機上有安裝交叉編譯器??arm-none-linux-gnueabi-gcc 需要查看一下它所在的位置。 # which arm-none-linux-gnueabi-gcc /opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-gcc然后下載需要的軟件 主要是兩個?mosquitto-1.4.14 和?openssl-1.0.1c 下載:openssl-1.0.1c 下載:mosquitto-1.4.14

二、MQTT源碼交叉編譯

參看:mosquitto-1.4.9在Linux上的編譯

(1)編譯需要依賴的openssl

將上面下載的文件?openssl-1.0.1c.tar.gz 解壓 tar -zxvf?openssl-1.0.1c.tar.gz 然后進入該文件 cd?openssl-1.0.1c 然后執行: ./config no-asm shared --prefix=/opt/com/ssl
注意 : ?/opt/com/ssl/ 文件夾是指定存放共享庫的位置,你自己要先創建好的哦 然后修改Makefile中下列變量的值:
CC = /opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-gcc?
AR = /opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-ar $(ARFLAGS) r
RANLIB = /opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-ranlib

注意: ?這里就是為什么上面要你查看交叉編譯所在位置的原因了。 再有啊,記得需要將之前的變量值注釋掉的哦。我第一次就忘記了,然后再編譯的時候出現錯誤: Relocations in generic ELF (EM: 3) libcrypto.a(e_old.o): could not read symbols: File in wrong format 解決方法,就是執行: #make clean -w

最后就是執行編譯:

make && make install

(2)編譯mosquitto-1.4.14客戶端

將上面下載的文件?mosquitto-1.4.14.tar.gz?解壓

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/opt/com/ssl/include
LDFLAGS += -L/opt/com/ssl/lib -lssl -lcrypto
STRIP?=arm-none-linux-gnueabi-strip
注意: /opt/com/ssl/ 上面說了是共享庫文件所在位置,你自己創建的。不過現在里面是有東西的。


執行編譯 make CC=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-gcc CXX=/opt/arm-2009q1-203/bin/arm-none-linux-gnueabi-g++ 最后執行? make install 最終在 /usr/locat/lib 目錄下可以看到新生成的?libmosquitto.so.1 ? 注意: ?如果不修改?STRIP?=arm-none-linux-gnueabi-strip 會出現錯誤:strip: Unable to recognise the format of the input file `/usr/local/lib/libmosquitto.so.1' 這是參考那篇文章里所沒有提到的。

三、總結

最后想不想看一下,gcc 和?arm-none-linux-gnueabi-gcc 編譯生成的??libmosquitto.so.1 到底有啥不同。 gcc編譯: # file libmosquitto.so.1 libmosquitto.so.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xb05795243eded68d65abe39b12212099c849965b, not stripped arm-none-linux-gnueabi-gcc?交叉編譯:
# file libmosquitto.so.1 libmosquitto.so.1: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped看出來了么? 是類型啦,主要是在 Intel 80386 執行還是在 ARM 執行的。

總結

以上是生活随笔為你收集整理的MQTT再学习 -- 交叉编译与移植的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人久久精品 | 欧美成人免费一级 | 亚洲又粗又长 | 一级性毛片 | 国产美女主播视频 | 免费在线黄色片 | 精品人妻av一区二区 | 人人看人人插 | 亚洲伦理自拍 | 亚洲图片视频小说 | 99精品乱码国产在线观看 | 国产又粗又大又长 | xxxx日本免费 | 日本不卡123 | 色乱码一区二区三区网站 | 天天操夜夜草 | 国产传媒在线视频 | 老牛影视av牛牛影视av | 婷婷综合影院 | 在线免费观看高清视频 | 高清av一区二区三区 | 欧美高清性xxxxhdvideosex | 亚洲天堂视频网 | 日韩精品在线观看视频 | 九九99久久 | 麻豆蜜桃wwww精品无码 | 午夜国产精品视频 | 男女免费看 | 在线观看国产黄 | 男女操操 | 久久这里有精品 | 男同互操gay射视频在线看 | 99国产精品一区 | 日韩色图视频 | 色人阁五月天 | 国语对白对话在线观看 | 西西午夜视频 | 二区三区偷拍浴室洗澡视频 | 欧美深夜福利 | 国产二区电影 | 91丝袜在线 | 国产黄色片在线 | 男女免费毛片 | 欧美视频a | 青草视频免费在线观看 | av网站免费在线观看 | 9l视频自拍蝌蚪9l视频成人 | av在线播放不卡 | av久热| 制服丝袜在线播放 | av一级 | 国产精品成人99一区无码 | 亚洲欧美一区二区三区四区 | 99无码熟妇丰满人妻啪啪 | 欧洲精品免费一区二区三区 | 日本一区二区三区在线视频 | 一区二区三区毛片 | 特级一级片 | 我的好妈妈在线观看 | 青青国产在线观看 | 在线www| 天天综合精品 | 国产无遮挡又黄又爽 | 国产色播 | 亚洲一区自拍 | 四虎影院在线免费播放 | 毛片在线视频观看 | 日本精品视频在线观看 | 日本中文字幕第一页 | 久久久久久免费视频 | 9l视频自拍九色9l视频成人 | 久久神马 | 免费网站观看www在线观 | 99riav国产| 色悠悠视频 | 亚洲熟女乱色一区二区三区 | 99精品视频在线免费观看 | 亚洲美女av在线 | 久久亚洲AV无码专区成人国产 | 久久精品一区二区三 | 午夜性福利视频 | 欧美日韩免费在线视频 | 制中文字幕音影 | xxxxwww一片| 潘金莲一级淫片aaaaa武则天 | 女人色极品影院 | 国产精品一区二区三区在线看 | 中文综合网 | 欧美a级片在线观看 | 男人看的网站 | 成人精品视频一区二区 | 免费男女乱淫真视频免费播放 | 亚洲精品91天天久久人人 | 一区二区精品区 | 久久久999视频 | 激情专区| 日韩毛片一区二区三区 | 波多野吉衣一二三区乱码 | 一级黄色大片视频 |