嵌入式MQTT库移植(基于mosquitto库)
一、交叉编译OpenSSL
-
下载源码到Linux虚拟机环境:https://www.openssl.org/source/openssl-1.1.1f.tar.gz ,放入非windows共享文件夹目录;
-
解压:tar -xvzf openssl-1.1.1f.tar.gz
cd openssl-1.1.1f
-
配置:./config no-asm shared --prefix=/opt/com/openssl
,放入/opt/com/openssl目录是为了安装编译mosquitto更加方便;
-
修改Makefile:
博主的交叉编译工具链目录是:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/,因此将 CROSS_COMPILE 修改为:
CROSS_COMPILE=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
并将 CNF_CFLAGS CNF_CXXFLAGS后的-m64去掉;
-
保存Makefile,然后make,成功后执行makeinstall;
-
ls /opt/com/openssl 就能看到安装的OpenSSL库相关文件;
二、交叉编译mosquitto
- 下载mosquito源码:http://mosquitto.org/download/
- 放入Linux虚拟机解压:tar -xvzf mosquitto-1.6.12.tar.gz
cd mosquitto-1.6.12
- 修改config.mk
WITH_SRV:=no
WITH_WEBSOCKETS:=no
WITH_DOCS:=no
上一步生成的openssl文件在路径/opt/com/openssl/,因此:
CFLAGS+=-I/opt/com/openssl/include/ (新增)
LDFLAGS+=-L/opt/com/openssl/lib -lssl -lcrypto (注意:+=与“CFLAGS”“LDFLAGS”之间不要有空格) (新增)
根据自己的交叉编译路径,修改STRIP
STRIP?=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip (修改)
- 编译
根据交叉编译路径,执行:
make CC=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CXX=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
- make install
- 在mosquitto-1.6.12/lib 生成libmosquitto.so.1库文件;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)