
Я заинтересован в использовании GNU Make на Windows. Я создал небольшой Makefile, используя Pattern Rule:
all: abcd.o
%.o : %.c
echo hi
Однако, когда я пытаюсь сделать все,
D:\test>"C:\Program Files (x86)\GnuWin32\bin\make" -f Makefile.txt
make: *** No rule to make target `abcd.o', needed by `all'. Stop.
Я устанавливаю GNU Make изэтот репозиторий.документациячто я нашел, описывает, что этот Makefile должен работать.
D:\test>"C:\Program Files (x86)\GnuWin32\bin\make" --version
GNU Make 3.81
Как использовать шаблонные правила в файлах GNU Makefile в Windows?
решение1
сделать: *** Нет правила сделать цель abcd.o', needed by
«все». Стоп.
Ваш make-файл содержит:
all: abcd.o
%.o : %.c
echo hi
Это сработает только в том случае, если файл abcd.c
существует или может быть создан (по другому правилу).
Таким образом, правило вида
%.o : %.c ; recipe…
указывает, как сделать файл нет,с другим файлом nc в качестве предварительного условия, при условии, что nc существует или может быть создан.
Источник10.5.1 Введение в правила шаблонов
дальнейшее чтение
- Простой учебник по Makefile- содержит несколько простых полных примеров make-файлов.
решение2
Файл abcd.c должен существовать.