常用makefile的一些模板

模板一:

源文件,.h个在一个文件夹下生成可执行文件:

DIR_INC = ./include
DIR_SRC = ./src
DIR_OBJ = ./obj
DIR_BIN = ./lib
DIR_PUB = ./pub

DLIBS = -O2 -Wall
SRC = $(wildcard ${DIR_SRC}/*.c)  
OBJ = $(patsubst %.c,${DIR_OBJ}/%.o,$(notdir ${SRC})) 

TARGET = xxx
BIN_TARGET = ${DIR_BIN}/${TARGET}

CC = gcc

CFLAGS = -I${DIR_INC}


${BIN_TARGET}:${OBJ}
    $(CC) -o $@ $(OBJ) $(DLIBS)

${DIR_OBJ}/%.o:${DIR_SRC}/%.c
	$(info, $(CFLAGS))
	@echo $(CFLAGS)
	$(CC)  $(CFLAGS) -c -g $< -o $@ 
.PHONY:clean
clean:
	rm -rf ${DIR_OBJ}/*.o ${BIN_TARGET}

模板二:

源文件,.h个在一个文件夹下生成静态库:

DIR_INC = ./include
DIR_SRC = ./src
DIR_OBJ = ./obj
DIR_BIN = ./lib
DIR_PUB = ./pub


SRC = $(wildcard ${DIR_SRC}/*.c)  
OBJ = $(patsubst %.c,${DIR_OBJ}/%.o,$(notdir ${SRC})) 

TARGET = xxx.a
BIN_TARGET = ${DIR_BIN}/${TARGET}

CC = gcc
AR = ar

CFLAGS = -I${DIR_INC}


${BIN_TARGET}:${OBJ}
	$(AR) -crv $@ $(OBJ)

${DIR_OBJ}/%.o:${DIR_SRC}/%.c
	$(info, $(CFLAGS))
	@echo $(CFLAGS)
	$(CC)  $(CFLAGS) -c -g $< -o $@ 
.PHONY:clean
clean:
	rm -rf ${DIR_OBJ}/*.o ${BIN_TARGET}

模板三:

源文件,.h个在多个文件夹下生成可执行文件:

DIR_INC1 = ../
DIR_INC2 = .
DIR_SRC1 = ../
DIR_SRC2 = .
DIR_OBJ = ./obj
DIR_BIN = .


DLIBS = -O2 -Wall

SRC = $(wildcard ${DIR_SRC1}/*.c) $(wildcard ${DIR_SRC2}/*.c)  
OBJ = $(patsubst %.c,${DIR_OBJ}/%.o,$(notdir ${SRC})) 

TARGET = xxx
BIN_TARGET = ${DIR_BIN}/${TARGET}

CC = gcc

CFLAGS = -I${DIR_INC} 


${BIN_TARGET}:${OBJ}
	$(CC) -o $@ $(OBJ) $(DLIBS)
	
${DIR_OBJ}/%.o:${DIR_SRC1}/%.c
	$(CC) $(CFLAGS) -c  $< -o $@ 

${DIR_OBJ}/%.o:${DIR_SRC2}/%.c
	$(CC) $(CFLAGS) -c  $< -o $@ 
.PHONY:clean
clean:
	rm -rf ${DIR_OBJ}/*.o ${BIN_TARGET}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值