【经验分享】linux交叉编译 - paho-mqtt动态库
之前分享了openssl交叉编译方法,现在可以将编译好的openssl动态库使用到paho mqtt中了。
P.S.
如果系统中已有openssl库,则可以直接使用。是否有安装openssl可以直接在控制台输入openssl命令,如果没有报命令不识别之类的,且出现如下结果就说明已安装了openssl:
一、准备工作
下载paho.mqtt.c源码,github下载地址:
https://github.com/eclipse/paho.mqtt.c
解压后上传到linux编译机上
将交叉编译工具链也上传解压,并确认交叉编译器所在路径。如果是64位的编译链,还需要确认头文件(sysroot)所在路径 (详细确认方法请参考openssl交叉编译方法的帖子内容)
二、修改Makefile
主要修改3个地方:编译器路径、编译选项和openssl目录,如下图所示(点击下图可使用鼠标滚轮放大缩小)
如果要增加编译选项,可以加在CFLAGS中(编译选项根据需求添加,可以不添加):
上图中增加的编译选项:-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即可
编译完成后可以在build/output目录下看到编译好的库:
四、其他说明
如果不需要交叉编译工具,而是直接使用gcc,那么修改Makefile时只要修改openssl目录即可(编译选项可加可不加)
- 点赞
- 收藏
- 关注作者
评论(0)