一些特殊的Makefile整理

案例一、自动编译多个.c构成的项目,即把所有的.c编译成同一个可执行文件

#自动编译多个.c构成的项目,即把所有的.c编译成同一个可执行文件
CC:=gcc
CFLAGS:=-Wall -g
SRC:=${wildcard *.c} #将当前目录下的以.c为后缀的文件名赋给SRC
OBJ:=${patsubst %.c,%.o,$(SRC)}#将Src中以.c为后缀的字符串替换成.o为后缀赋给OBJ

test:$(OBJ)
    $(CC) -o $@ $^ $(CFLAGS)


%.o:%.c
    $(CC) -o $@ -c $< $(CFLAGS)

.PHONY:clean print
clean:
    rm -f *.o test .*.sw?
print:
    @echo $(SRC)
    @echo $(OBJ)
 

案例二、当前目录下所有.c文件编译为单独的可执行目标文件

#PHONY: all  clean
SRC=$(wildcard *.c)
OBJ=$(SRC:%.c=%.o)
BIN=$(OBJ:%.o=%)

CC=gcc
CFLAGS=-Wall -g -c

all:$(BIN)

$(BIN):%:%.o
    $(CC) $^ -o $@
$(OBJ):%.o:%.c
    $(CC) $(CFLAGS) $^ -o $@

clean:
    rm $(OBJ) $(BIN)
 

案例三、该Makefile只针对单文件程序
C

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值