
Estoy interesado en usar GNU Make en Windows. Creé un pequeño Makefile usando una regla de patrón:
all: abcd.o
%.o : %.c
echo hi
Sin embargo, cuando intento hacer todo,
D:\test>"C:\Program Files (x86)\GnuWin32\bin\make" -f Makefile.txt
make: *** No rule to make target `abcd.o', needed by `all'. Stop.
Instalo GNU Make desdeeste repositorio. Eldocumentaciónque encontré describe que este Makefile debería funcionar.
D:\test>"C:\Program Files (x86)\GnuWin32\bin\make" --version
GNU Make 3.81
¿Cómo puedo usar reglas de patrones en GNU Makefiles en Windows?
Respuesta1
hacer: *** No hay regla para hacer que abcd.o', needed by
todos los objetivos sean objetivos. Detener.
Su archivo MAKE contiene:
all: abcd.o
%.o : %.c
echo hi
Esto solo funcionará si abcd.c
existe un archivo o se puede crear (mediante otra regla).
Por tanto, una regla de la forma
%.o : %.c ; recipe…
especifica cómo hacer un archivo no,con otro archivo nc como requisito previo, siempre que nc exista o pueda crearse.
Fuente10.5.1 Introducción a las reglas de patrones
Otras lecturas
- Un sencillo tutorial de Makefile- contiene algunos ejemplos simples y completos de archivos MAKE.
Respuesta2
El archivo abcd.c debe existir.