paho mqtt库交叉编译


阿里云文档可以参考

https://code.aliyun.com/edward.yangx/public-docs/wikis/user-guide/linkkit/Paho_MQTT_Guide/Paho_C

1】克隆:

git clone git@github.com:eclipse/paho.mqtt.embedded-c.git

2】修改CMakeLists.txt,设置编译器和sysroot,增加以下语句:

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)

SET(CMAKE_C_COMPILER /home/a/Downloads/neoway-arm-oe-linux/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gcc)

SET(CMAKE_CXX_COMPILER /home/a/Downloads/neoway-arm-oe-linux/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++)

set(CMAKE_SYSROOT /home/a/Downloads/neoway-arm-oe-linux/sysroots/armv7a-vfp-neon-oe-linux-gnueabi)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

备注:

参考资料见CMake交叉编译指南,,以下页面搜索关键字Cross Compiling:

https://cmake.org/cmake/help/v3.0/manual/cmake-toolchains.7.html

source之后,找到有方编译器命令CMAKE_C_COMPILER 绝对路径:which arm-oe-linux-gnueabi-gcc

3】进入克隆包,进行编译:

mkdir build.paho

cd build.paho

cmake ..

make

4】动态库在:

build.paho/MQTTClient-C/src/libpaho-embed-mqtt3cc.so