1、概述
paho.mqtt.c 是Eclipse编写的开源mqtt c库,支持Posix标准操作系统(如Linux,Android,Mac)和windows操作系统。
这个库提供两套API,分别是"同步"的MQTTClient和“异步”的MQTTAsync,同步API目的是更加简单、更加有用的。为了达到这个目的,部分操作将被阻塞,直到这个操作完成,这样程序的框架更加简单。
2、在海思平台编译mqtt操作如下:
【不支持OpenSSL】
cmake ../ -DPAHO_BUILD_STATIC=TRUE -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin/arm-hisiv500-linux-gcc -DCMAKE_INSTALL_PREFIX=root/work/third_lib/paho.mqtt.c-1.3.9/build
【支持OpenSSL】
cmake . -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_STATIC=TRUE -DPAHO_ENABLE_TESTING=FALSE -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_INSTALL_PREFIX=${PWD}/build -DOPENSSL_INCLUDE_DIR=${PWD}/depend/include -DOPENSSL_SSL_LIBRARY=${PWD}/depend/lib/libssl.so -DOPENSSL_CRYPTO_LIBRARY=${PWD}/depend/lib/libcrypto.so -DCMAKE_C_COMPILER=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin/arm-hisiv500-linux-gcc -DCMAKE_C_FLAGS="-D_GLIBCXX_USE_C99=1 -march=armv7-a -mfpu=neon -mcpu=cortex-a9 -mfloat-abi=softfp -ffunction-sections -mno-unaligned-access -fno-aggressive-loop-optimizations"
3、库说明
paho-mqtt3a :异步API接口的库,API函数都是以MQTTAsync开头,API函数定义在MQTTAsync.h。
paho-mqtt3c :同步API接口的库,API函数都是以MQTTClient开头,API函数定义在MQTTClient.h。
paho-mqtt3as :异步API接口的库,API函数都是以MQTTAsync开头,API函数定义在MQTTAsync.h,这个库默认带有TLS加密功能,同时也需要openssl库支持。
paho-mqtt3cs :同步API接口的库,API函数都是以MQTTClient开头,API函数定义在MQTTClient.h,这个库默认带有TLS加密功能,同时也需要openssl库支持。