Makefile 将所有 *.c 转换为 *.o

Shr*_*dha 8 c makefile gnu-make

我正在编写一个 Makefile,用于将目录中的所有 *.c 文件编译为 *.o 。有很多 *.c 文件,所以我不想单独做,

我试过

%.o: %.c
        $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
Run Code Online (Sandbox Code Playgroud)

但这不起作用......请帮助我了解这里出了什么问题......

noo*_*nee 3

您可以添加规则OBJS,它会为您完成

OBJS    = $(SRCS:.c=.o)
Run Code Online (Sandbox Code Playgroud)

.c如果文件太多,请SRCS执行以下操作:

SRCS    = $(wildcard *.c)
Run Code Online (Sandbox Code Playgroud)

然后在运行时添加它make

$(NAME) : $(OBJS)
          [...]
Run Code Online (Sandbox Code Playgroud)