Fehler: Makefile: 12: *** Rezept beginnt vor dem ersten Ziel. Halt.Rezept beginnt vor dem ersten Ziel
Mein Make-Datei:
objDir := obj
incDir := include
srcDir := src
binDir := bin
files := matrix palindrome encryption
define generateObject
@nasm -f elf32 -o $(objDir)/$(1).o $(srcDir)/$(1).asm
endef
object: $(addprefix $(srcDir)/,$(addsuffix .asm,$(files)))
@echo -n "Generating object files... "
$(foreach file,$(files),$(eval $(call generateObject,$(file))))
@echo "Done"
ich in einem Beitrag gelesen, dass dies zu unerwünschten Leerzeichen/Tab aufgrund sein könnte, aber ich konnte keine finden.
Ich versuchte cat -e -t -v Makefile
und der Ausgang war:
objDir := obj$
incDir := include$
srcDir := src$
binDir := bin$
files := matrix palindrome encryption$
$
define generateObject$
^[email protected] -f elf32 -o $(objDir)/$(1).o $(srcDir)/$(1).asm$
endef$
$
object: $(addprefix $(srcDir)/,$(addsuffix .asm,$(files)))$
^[email protected] -n "Generating object files... "$
^I$(foreach file,$(files),$(eval $(call generateObject,$(file))))$
^[email protected] "Done"$
Es ist nichts falsch mit diesem Makefile, das ich sehen kann, und wenn ich damit mache, bekomme ich keinen Fehler so. Welches Betriebssystem benutzen Sie? Welche Version von make benutzt du (rufe 'make --version')? – MadScientist
Ich verwende GNU Make 4.1 auf Ubuntu 16.04. –