一、下载openssl和mosquitto
一般来说,MQTT的交叉编译与移植第一步,需要先下载openssl和mosquitto。
(我的ubuntu可能之前装过这两个了,所以我没装也成功了)
可以参考这篇博客:MQTT再学习 – 交叉编译与移植
不过上面博客在交叉编译openssl的时候用到了
./config no-asm shared --prefix=/opt/com/ssl
可能还需要一个参数
`--cross-compile-prefix=aarch64-linux-gnu-`
有的平台(比如3559)还需要:
打开./config 生成的Makefile,将-m64选项全部删除掉,一共有两处,如果在x86机器进行交叉编译,不删除会报错。
参考博客openssl的Linux编译与交叉编译
config参数的说明:
--prefix 表示自定义安装路径,如果想安装在默认路径下,可以不使用这个参数;
-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),
则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。
这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的;
no-shared 表示不生成动态库,只生成静态库,如果想生成动态库使用shared参数(默认应该也是动态库)。
no-asm 表示:Do not use assembler code。
--cross-compile-prefix 表示指定交叉编译器,需要提前安装配置好自己需要的交叉编译器。
二、运行paho-mqtt-c的c语言代码
paho mqtt库交叉编译
1、git克隆:
git clone git@github.com:eclipse/paho.mqtt.embedded-c.git
2、修改CMakeLists.txt,