【发布时间】:2017-05-06 23:33:28
【问题描述】:
错误:Makefile:12: *** 配方在第一个目标之前开始。停下来。
我的生成文件:
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"
我在一篇文章中读到,这可能是由于不需要的空格/制表符,但我找不到任何内容。
我试过cat -e -t -v Makefile,结果是:
objDir := obj$
incDir := include$
srcDir := src$
binDir := bin$
files := matrix palindrome encryption$
$
define generateObject$
^I@nasm -f elf32 -o $(objDir)/$(1).o $(srcDir)/$(1).asm$
endef$
$
object: $(addprefix $(srcDir)/,$(addsuffix .asm,$(files)))$
^I@echo -n "Generating object files... "$
^I$(foreach file,$(files),$(eval $(call generateObject,$(file))))$
^I@echo "Done"$
【问题讨论】:
-
我可以看到这个 makefile 没有任何问题,当我使用它运行 make 时,我没有收到这样的错误。您使用什么操作系统?你用的是什么版本的make(运行
make --version)? -
我在 Ubuntu 16.04 上使用 GNU Make 4.1。
标签: makefile