本篇将把paho.mqtt.embedded-c官方的源代码交叉编译成数据包封装库和应用程序两部分,并把样例应用程序在mini2440上运行。
一、首先编译MQTT协议包封装库:
解压paho.mqtt.embedded-c-master.zip之后,进入目录,
修改Makefile:
1、修改第70行CC ?=gcc为:
CC ?=arm-linux-gcc
2、第43行SOURCE_FILES_C = $(srcdir)/*.c改为:
SOURCE_FILES_C = $(wildcard $(srcdir)/*.c )
OBJS = $(addsuffix .o,$(basename $(SOURCE_FILES_C)))
这个是把那个目录下的所有.c文件都编译进去,不然,后面引用这个库的时候会出错。
3、第95行rm -rf ${blddir}/* 改为:
rm -rf ${
blddir}/* $(OBJS) ${
srcdir}/../samples/transport.o
4、第110行
${EMBED_MQTTLIB_C_TARGET}: ${SOURCE_FILES_C} ${HEADERS_C}
改为
${
EMBED_MQTTLIB_C_TARGET}: $(OBJS) ${
HEADERS_C}
第111行
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_C} ${LDFLAGS_C}
改为:
${
CC} ${
CCFLAGS_SO} -o $@ $(OBJS) ${
LDFLAGS_C}
这是把所有的.o文件都链接到动态库中。
不然,后面引用动态库的时候会报错误说缺少相关引用。
注意前面都有个tab键符
4、在121行nstall: build 下面添加:
-mkdir -p