这是一个适用于 Windows 和 Unix 下 gcc 编译器使用的 Makefile 模板,直接把代码拷贝到你项目路径下的 Makefile 文件,执行 make 或 make clean 指令即可 。
.PHONY: clean
CC = gcc
TARGET = main
SRC = $(call rwildcard, ./, %.c)
rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
ifeq ($(OS), Windows_NT)
REMOVE = del
TARGET := main.exe
SRC := $(subst /,\,$(SRC))
else
REMOVE = rm
TARGET := main.out
SRC := $(subst \,/,$(SRC))
endif
preprocessing = $(SRC:.c=.i)
compilation = $(preprocessing:.i=.s)
assembly = $(compilation:.s=.o)
$(TARGET): $(assembly)
$(CC) $(assembly) -o $(TARGET)
$(assembly): %.o: %.s
$(CC) -c $< -o $@
$(compilation): %.s: %.i
$(CC) -S $< -o $@
$(preprocessing): %.i: %.c
$(CC) -E $< -o $@
clean:
$(REMOVE) $(preprocessing)
$(REMOVE) $(compilation)
$(REMOVE) $(assembly)
$(REMOVE) $(TARGET)
示例效果如下:


1015

被折叠的 条评论
为什么被折叠?



