linux开发项目makefile编写

一、编写生成库文件

#build tools
SHELL = /bin/sh
CC = gcc
AR = ar
VERSION = V1.0

#target
LIB_TARGET = mqtt_fun.a

#add define
DEBUG = -DMQTTCLIENT_PLATFORM_HEADER=MQTTLinux.h

#add build options
CFLAGS += -O -w -lpthread -lm

#add include files path
INCLUES += -I ../../src/linux
INCLUES += -I ../../../MQTTPacket/src
INCLUES += -I ../../src

#add src files path
VPATH += ../../src/linux
VPATH += ../../../MQTTPacket/src

#add lib files path
#LIBS +=  
#LIB_PATH += -L .

#obj files
OBJS = MQTTClient.o mqtt_top.o mqtt_scheduler.o cJSON.o mqtt_fun_alarm.o mqtt_fun_device_status.o mqtt_fun_device_tag.o mqtt_fun_log.o mqtt_fun_ota.o mqtt_fun_set_para.o mqtt_fun_vpn.o mqtt_interface.o MQTTLinux.o MQTTFormat.o MQTTPacket.o MQTTDeserializePublish.o MQTTConnectClient.o MQTTSubscribeClient.o MQTTSerializePublish.o MQTTConnectServer.o MQTTSubscribeServer.o MQTTUnsubscribeServer.o MQTTUnsubscribeClient.o

#build rules
$(LIB_TARGET):$(OBJS)
	cp ../../src/MQTTClient.c .
	sed -e 's/""/"MQTTLinux.h"/g' ../../src/MQTTClient.h > MQTTClient.h
	$(AR) -rc $@ $^
	@mkdir -p obj
	@mv *.o obj
	@mv *.a obj
%.o:%.c
	$(CC) $(INCLUES) -c $^ -o $@ $(CFLAGS) $(DEBUG)

clean:
	rm -rf mqtt_fun.a *.o
	echo "rm -rf mqtt_fun.a *.o"

在这里插入图片描述
二、编译生成执行文件

#build tools
SHELL = /bin/sh
CC = gcc
AR = ar
VERSION = V1.0

#target
LIB_TARGET = mqtt_fun

#add define
DEBUG = -DMQTTCLIENT_PLATFORM_HEADER=MQTTLinux.h

#add build options
CFLAGS += -w -lpthread -lm

#add include files path
INCLUES += -I ../../src/linux
INCLUES += -I ../../../MQTTPacket/src
INCLUES += -I ../../src

#add src files path
VPATH += ../../src/linux
VPATH += ../../../MQTTPacket/src

#add lib files path
#LIBS +=  
#LIB_PATH += -L .

#obj files
OBJS = MQTTClient.o mqtt_top.o mqtt_scheduler.o cJSON.o mqtt_fun_alarm.o mqtt_fun_device_status.o mqtt_fun_device_tag.o mqtt_fun_log.o mqtt_fun_ota.o mqtt_fun_set_para.o mqtt_fun_vpn.o mqtt_interface.o MQTTLinux.o MQTTFormat.o MQTTPacket.o MQTTDeserializePublish.o MQTTConnectClient.o MQTTSubscribeClient.o MQTTSerializePublish.o MQTTConnectServer.o MQTTSubscribeServer.o MQTTUnsubscribeServer.o MQTTUnsubscribeClient.o

#build rules
$(LIB_TARGET):$(OBJS)
	cp ../../src/MQTTClient.c .
	sed -e 's/""/"MQTTLinux.h"/g' ../../src/MQTTClient.h > MQTTClient.h
	$(CC) $(INCLUES) $^ main.c -o $@ $(CFLAGS) $(DEBUG)

%.o:%.c
	$(CC) $(INCLUES) -c $^ -o $@ $(CFLAGS) $(DEBUG)

clean:
	rm -rf mqtt_fun.a *.o
	echo "rm -rf mqtt_fun.a *.o"



在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值