Вы можете сделать это, как указано ниже:
SRCS=a.c b.c
OBJS=$(SRCS:.c=.o)
$(OBJS): $(SRCS)
cc -c -o a.o a.c
cc -c -o b.o b.c
, но вы должны помнить, что зависимости завершены - предполагается, что a.o
зависит от b.c
а также, что, вероятно, не так.
То, что вы, вероятно, ищете, - это одно правило о том, как превратить один тип файла в другой:
SRCS=a.c b.c
OBJS=$(SRCS:.c=.o)
all: $(OBJS)
.c.o:
gcc -c -o $@ $<
.c.o
такойправило, в котором указывается, какие команды нужно выполнить, чтобы превратить файл .c
в файл .o
.В действующей команде $@
заменяется конкретной целью, а $<
заменяется именем первой предпосылки.
Существует множество других автоматических переменных , которые вы можете использовать,найдите их с помощью info make
или найдите хорошую книгу на make
, если у вас нет info
доступных материалов.