Makefile(三)

在平时使用中,可以使用以下的makefile来编译单独的代码

src = $(wildcard *.c)
obj = $(patsubst %.c, %.o, $(src))

CC = gcc
CFLAGS = -Wall -g

all:$(target)

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

.PHONY: clean all
clean:
    -rm -rf $(target)

使用方法就是make 后面跟文件名就可以单独编译该程序(不要加后缀.c)

更正:

上面的makefile无法实现make clean删除执行文件的原因是 代码错误。

以下是可以生成并且删除对应的文件

src = $(wildcard *.c)
target = $(patsubst %.c, %, $(src))

CC = gcc
CFLAGS = -Wall -g

all:$(target)

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

.PHONY: clean all
clean:
    -rm -rf $(target) test
原文地址:https://www.cnblogs.com/wanghao-boke/p/11304964.html