Linux:MQTT通信协议之五 -- 交叉编译mosquitto

1、前言

前面的测试例程都是基于Linux PC上的,但在我们的使用过程中,往往需要在其他平台上使用,比如ARM架构的平台,这时由于CPU架构的不同,指令集也就不同,所以接下来就是需要进行交叉编译。


2、交叉编译步骤

回想一下在PC上编译的步骤(文章链接),结合config.mk可以知道mosquitto依赖于OpenSSL,除非你确定不再使用密码认证,所以接下来需要先编译OpenSSL。

2.1 交叉编译OpenSSL

源码下载:https://www.openssl.org/source/old/

编译步骤:

tar xzvf openssl-1.1.0k.tar.gz
cd openssl-1.1.0k/
mkdir tmp
./config shared no-asm --prefix=$PWD/tmp/
vi Makefile     # 修改内容如下
    CROSS_COMPILE=arm-linux-gnueabihf-
    # 重点 --> 由于我们的板子CPU是32位,所以需要去掉所有“-m64”选项
make
make install
ls -l tmp/      # 我们感兴趣的只有bin/include/lib三个路径
2.2 交叉编译mosquitto

源码下载:https://mosquitto.org/download/

编译步骤:

tar xzvf mosquitto-1.6.9.tar.gz
cd mosquitto-1.6.9/
make CROSS_COMPILE=arm-linux-gnueabihf- CC=gcc \
	CFLAGS="-I$PWD/../openssl-1.1.0k/tmp/include" \
	LDFLAGS="-L$PWD/../openssl-1.1.0k/tmp/lib -lssl -lcrypto" \
	WITH_DOCS=no
make prefix=. DESTDIR=$PWD/tmp/ WITH_DOCS=no install
ls -l tmp/

猜你喜欢

转载自blog.csdn.net/weixin_44498318/article/details/113307373