linux-makefile文件

##################编译器######################################
CC = gcc

##################可执行文件###################################
PROJECT_NAME = app

##################项目路径#####################################
PROJEXT_PATH = PROJECT/EXE
OBJ_PATH := PROJECT/OBJ
HXX_INCLUDES_PATH = HAL/HELLO
CXX_SOURCES_PATH = APL HAL/HELLO

##################收集需要编译的源文件##########################
CXX_SOURCES = $(foreach dir, $(CXX_SOURCES_PATH), $(wildcard $(dir)/*.c))
##################将所有.c文件替换成.o文件,并指定.o文件放到指定目录下##############
CXX_OBJCTS = $(patsubst %.c,$(OBJ_PATH)/%.o,$(notdir $(CXX_SOURCES)))
##################定义.c文件的搜索路径#########################################
VPATH = $(CXX_SOURCES_PATH)

#############收集需要编译的头文件#############################################
CFLAGS=$(patsubst %,-I%,$(HXX_INCLUDES_PATH))
HXX_INCLUDES = $(foreach dir,$(HXX_INCLUDES_PATH),$(wildcard $(dir)/*.h))

###############链接成可执行文件##############################################
$(PROJEXT_PATH)/$(PROJECT_NAME):$(CXX_OBJCTS) | create_exe
	$(CC) $^ -o $@

#################生成.o文件#################################################
###################CFLAGS放在后面##########################################
$(OBJ_PATH)/%.o:%.c $(HXX_INCLUDES) | create_obj
	$(CC) -c $< -o $@ $(CFLAGS)

#####################定义伪目标#############################################
.PHONE:create_obj  create_exe clean 

####################清除EXE、OBJ文件#######################################
clean:
	rm -r $(PROJEXT_PATH) $(OBJ_PATH)

create_obj:
	mkdir -p $(OBJ_PATH)

create_exe:
	mkdir -p $(PROJEXT_PATH)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值