首先配置交叉编译链环境
export PATH=$PATH:/media/zc/Code/crosstool-ng-1.21.0-174-g7d3ef02-am335x-on-i686/crosstool-ng-1.21.0-174-g7d3ef02-am335x-on-i686/bin
注意,在交叉编译之前首先需要确保已经有交叉编译后的openssl库。否则的话,如果想要编译带tls加密功能的mqtt库,就会报错,如果不需要tls加密,则不需要openssl库。
下载paho.mqtt.c源码压缩包
https://github.com/eclipse/paho.mqtt.c/releases
本文编译了两个版本的库,1.3.0和1.3.9
交叉编译的方式稍微有点不同。
1.3.9版本编译
解压缩,切换到源码目录后,
mkdir my_build
cd my_build
cmake ../ -DPAHO_WITH_SSL=TRUE -DCMAKE_C_COMPILER=arm-cortex_a8-linux-gnueabi-gcc -DOPENSSL_ROOT_DIR=/home/zc/tools/libopenssl-arm -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_INSTALL_PREFIX=/home/zc/tools/libmqtt-1.3.9
make
make install
编译完成
1.3.0版本编译
mkdir my_build
cd my_build
cmake ../ -DPAHO_WITH_SSL=TRUE -DCMAKE_C_COMPILER=arm-cortex_a8-linux-gnueabi-gcc -DOPENSSL_SEARCH_PATH=/home/zc/tools/libopenssl-arm -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_INSTALL_PREFIX=/home/zc/tools/libmqtt-1.3.0
make
make install
编译完成