linux编译mqtt源程序,【经验分享】linux交叉编译 - paho-mqtt动态库

本文介绍如何将交叉编译的OpenSSL动态库应用于Paho MQTT客户端库。主要内容包括:准备步骤如下载源码及交叉编译工具链;修改Makefile以指定编译器路径、编译选项及OpenSSL目录;最终编译生成适用于特定平台的MQTT客户端库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前分享了openssl交叉编译方法,现在可以将编译好的openssl动态库使用到paho mqtt中了。

P.S.

如果系统中已有openssl库,则可以直接使用。是否有安装openssl可以直接在控制台输入openssl命令,如果没有报命令不识别之类的,且出现如下结果就说明已安装了openssl:

2bed2b29e1e6a79fe3dc1f6f3a9cf49d.png

一、准备工作

下载paho.mqtt.c源码,github下载地址:

解压后上传到linux编译机上

将交叉编译工具链也上传解压,并确认交叉编译器所在路径。如果是64位的编译链,还需要确认头文件(sysroot)所在路径 (详细确认方法请参考openssl交叉编译方法的帖子内容)

二、修改Makefile

cf5c90734db176ea9d3f7312b2023e86.png

主要修改3个地方:编译器路径、编译选项和openssl目录,如下图所示(点击下图可使用鼠标滚轮放大缩小)

8b902c62ad9c6acfd6f083f304bbd4c1.png

如果要增加编译选项,可以加在CFLAGS中(编译选项根据需求添加,可以不添加):

746b8aacb26593a84a1084b612856fd2.png

上图中增加的编译选项:-Wall -O3 -Wl,-z,relro,-z,now,-z,noexecstack -fno-strict-aliasing -fno-omit-frame-pointer -pipe -Wall -MD -MP -fno-common -freg-struct-return -fno-inline -fno-exceptions -Wfloat-equal -Wshadow -Wformat=2 -Wextra -rdynamic -Wl,-z,relro,-z,noexecstack -fstack-protector-strong -fstrength-reduce -fno-builtin -fsigned-char -ffunction-sections -fdata-sections -Wpointer-arith -Wcast-qual -Waggregate-return -Winline -Wunreachable-code -Wcast-align -Wundef -Wredundant-decls -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs

三、编译出库

修改好Makefile后就可以编译了,先make clean一下(把原来的编译结果先清空),再make即可

97d450c4bd84dcc96a8f4dc00a1d7f86.png

编译完成后可以在build/output目录下看到编译好的库:

ce63dd69d0518d25571a434a4594da31.png

四、其他说明

如果不需要交叉编译工具,而是直接使用gcc,那么修改Makefile时只要修改openssl目录即可(编译选项可加可不加)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值