Функция подстановочного знака gmake не генерирует цель - PullRequest
0 голосов
/ 26 июня 2019

Я использую gmake на Windows с MinGW. Это фрагмент make-файла:

SRCS = ..\path\to\srcs\*.c*
SRCS := $(wildcard $(SRCS))
OBJS := $(addsuffix .o,$(basename $(SRCS)))

$(OBJS) : $(SRCS)
    $(CC) $(FLGAS) $(INCLUDES) "$<"

Я получаю следующее:

gmake: *** Нет целей. Стоп.

Если я определю SRCS, например, как ..\path\to\srcs\a.c, это будет работать. Я правильно использую wildcard?

Я использую GNU Make 3.81.

1 Ответ

1 голос
/ 26 июня 2019

make плохо справляется с обратным слешем;вместо этого вам нужно удвоить каждый или (лучше) переключиться на прямую косую черту.

Однако ваш рецепт переопределяет встроенные правила для создания объектных файлов из файлов C с поврежденным.Ваш рецепт утверждает, что все $(OBJS) будут созданы из одной компиляции, которая имеет все $(SRCS) как зависимости, но читает только первую ($< pro $^).Вероятно, лучше просто сказать, что вы хотите, и позволить make взять это оттуда.

.PHONY: all
all: $(OBJS)
%.o: ../path/to/srcs/%.c
...