通用makefile(一)单C语言编译模板

$@ 表示目标文件
$^ 表示所有的依赖文件
$< 表示第一个依赖文件
$? 表示比目标还要新的依赖文件列表

单一C语言编译:

#set a name as compile target
TARGET=main

CC=gcc
CFLAGS= -c -Wall
LDFLAGS=

SRCS=$(wildcard *.c)
OBJS=$(patsubst %.c,%.o,$(SRCS))

.PHONY: clean

all: $(TARGET)


$(TARGET): $(OBJS)
    $(CC) $^ $(LDFLAGS) -o $@
$(OBJS):%.o:%.c
    $(CC) $(CFLAGS) $< -o $@

clean:
    rm -f $(OBJS) $(TARGET)

你可能感兴趣的:(makefile,makefile)