解释广义Makefile

解释广义Makefile,makefile,Makefile,我遇到了这个代码,现在很难理解它。这个makefile中的代码非常通用,我对快捷方式有问题 CC = gcc CFLAGS = -Wall DEPS = primes.h OBJ = go.o primes.o %.o: %.c $(DEPS) $(CC) $(CFLAGS) -c -o $@ $< go: $(OBJ) gcc $(CFLAGS) -o $@ $^ What does the target %.o mean ? If you wish

我遇到了这个代码,现在很难理解它。这个makefile中的代码非常通用,我对快捷方式有问题

CC = gcc
CFLAGS = -Wall
DEPS = primes.h
OBJ = go.o primes.o

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

go: $(OBJ)
        gcc $(CFLAGS) -o $@ $^

What does the target %.o mean ? If you wish to enter this target what will you write ?
What does its dependency mean ?
What does $@ $< mean ?
What does $@ $^ mean ?
CC=gcc
CFLAGS=-Wall
DEPS=primes.h
OBJ=go.o primes.o
%.o:%.c$(DEPS)
$(CC)$(CFLAGS)-c-o$@$<
go:$(OBJ)
gcc$(CFLAGS)-o$@$^
目标%.o是什么意思?如果你想进入这个目标,你会写什么?
它的依赖性意味着什么?
$@$<是什么意思?
$@$^是什么意思?

%.o
适用于以
.o
后缀结尾的所有文件,同样地
%.c
适用于以
.c
后缀结尾的所有文件。
$
go: $(OBJ)
        gcc $(CFLAGS) -o $@ $^
gcc -Wall -o go go.o primes.o
%.o: %.c $(DEPS)
        $(CC) $(CFLAGS) -c -o $@ $<
gcc -Wall -c -o go.o go.c