paho.mqtt.c开源代码的ARM移植
paho.mqtt.c开源代码的ARM移植
1、环境及背景
CSDN上关于paho.mqtt.c的交叉编译教程⼤部分都是有问题的,或者是胡乱复制的,所以⾃⼰在此仔细写此⽂章分享⾃⼰⼀步⼀步移植成功的经验,为⼤家节约时间。虚拟机VM,系统Ubuntu16.04 64位,交叉编译器为arm-openwrt-linux-gcc,交叉编译paho.mqtt.c-master,库包含OpenSSL和mqtt5的功能。
2、开源资源下载
,下载最新的就⾏。
,此次使⽤的是openssl-1.1.。
3、编译过程
3.1编译OpenSSL
因为OpenSSL是paho.mqtt.c-master的⼀个基础库,所以必须先交叉编译OpenSSL。关于OpenSSL的
交叉编译,有⼀些⽐较好的⽂章,贴出来供⼤家参考。
此处我就不在此赘述OpenSSL的交叉编译了,这块有问题可以留⾔给我,基本问题不⼤。
3.2编译paho.mqtt.c
我的OpenSSL交叉编译路径在/home⽬录下⾯,路径为/home/zkty/arm-openssl/
备注:zkty是我创建VM虚拟机时⾃动创建的,其实就是此⽤户的home根⽬录。
解压缩在github下载的paho.mqtt.c-master .zip
进⼊cmake⽂件夹,可以看到ake⽂件,这个⽂件打开设置交叉编译器参数(前提是你的Ubuntu交叉编译器已经设置好了)。
# path to compiler and utilities
# specify the cross compiler
SET(CMAKE_C_COMPILER arm-openwrt-linux-gcc)
# Name of the target platform
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)
# Version of the system
SET(CMAKE_SYSTEM_VERSION 1)
回到paho.mqtt.c-master路径下,打开命令窗⼝,切换root⽤户,执⾏⼀下命令:
root@ubuntu:/home/zkty/paho.mqtt.c-master# cmake -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_SAMPLES=TRUE -DPAHO_BUILD_DOCUMENTATIO N=TRUE -DOPENSSL_ROOT_DIR="/home/zkty/arm-openssl/"-DOPENSSL_LIB_SEARCH_PATH="/home/zkty/arm-openssl/lib/"-DOPENSSL_INC_SEAR CH_PATH="/home/zkty/arm-openssl/include/openssl/"-DCMAKE_TOOLCHAIN_FILE=/home/zkty/paho.mqtt.c-master/cmake/ake /home/zkty/paho.mqtt.c-master
特别注意上述三个参数:
-DOPENSSL_ROOT_DIR="/home/zkty/arm-openssl/"
-DOPENSSL_LIB_SEARCH_PATH="/home/zkty/arm-openssl/lib/"
-DOPENSSL_INC_SEARCH_PATH="/home/zkty/arm-openssl/include/openssl/"
这三个参数是设置OpenSSL的基础库⽂件的。开源mqtt服务器
-DCMAKE_TOOLCHAIN_FILE=/home/zkty/paho.mqtt.c-master/cmake/ake /home/zkty/paho.mqtt.c-master
这个参数是设置交叉⼯具链的。
执⾏
make -j4 package
最终产物⾃动⽣成了压缩包的形式,如图:
内部包含了头⽂件、可执⾏的例⼦、动态库⽂件等,可以⾃⼰探索。
编译过程参考github项⽬下⾯的具体介绍。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。