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

Lily_w 发表于 2019/10/23 15:47:16 2019/10/23
【摘要】 之前分享了openssl交叉编译方法,现在可以将编译好的openssl动态库使用到paho mqtt中了。P.S.如果系统中已有openssl库,则可以直接使用。是否有安装openssl可以直接在控制台输入openssl命令,如果没有报命令不识别之类的,且出现如下结果就说明已安装了openssl:一、准备工作下载paho.mqtt.c源码,github下载地址:https://github....

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

P.S.

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

image.png


一、准备工作

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

https://github.com/eclipse/paho.mqtt.c

解压后上传到linux编译机上

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


二、修改Makefile

image.png

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

image.png

如果要增加编译选项,可以加在CFLAGS中(编译选项根据需求添加,可以不添加):image.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即可

image.png

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

image.png


四、其他说明

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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。