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"



在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u010835747/article/details/120666163