Mosquitto库依赖libuuid和openssl库,所以我们在交叉编译Mosquitto之前需要先交叉编译他所需要的依赖库,这里作者已经把需要的源码都下载好了,大家可以在这个文档的目录下找到。不建议大家下载和我不一致的版本,可能会出问题。
我们把uuid的源码拷贝到Ubuntu,作者是拷贝拷贝到了/home/topeet/mqtt下面,如下图所示:
输入以下命令,解压源码并进入解压生成的文件夹:
tar -vxf libuuid-1.0.3.tar.gz
如下图所示:
然后我们在/opt/下创建一个名为mosquitto-arm的文件夹,命令如下:
mkdir -p /opt/mosquitto-arm
如下图所示:
配置源码,我们在解压生成的uuid库的文件夹输入以下命令:
./configure --prefix=/opt/mosquitto-arm/libuuid-1.0.3 CC=arm-none-linux-gnueabi-gcc --host=arm-linux
如下图所示:
最后,编译并安装,命令如下:
make
make install
编译并安装成功后会在我们设置/opt/mosquitto-arm下得到一个libuuid的文件夹
2. 交叉编译openssl库
解压压缩包进进入解压后的目录
tar -vxf openssl-1.0.2g.tar.gz
cd openssl-1.0.2g
如下图所示。作者是放在了/home/topeet/mqtt目录下
配置编译参数
setarch i386 ./config no-asm shared --prefix=/opt/mosquitto-arm/openssl/
setarch i386:声明生成的是32位CPU,如果是64位CPU则去除该部分
--prefix :指定make install后生成目录的路径,不修改此项则默认为OPENSSLDIR目录(/usr/local/ssl)。
shared :生成动态连接库。
no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码是对arm格式不支持的