爲了簡化我的問題,如果我有一個Makefile如下傳遞一個命令行參數爲目標的Makefile
%: %.c
gcc -o [email protected] $<
make foo
Make foo
將從foo.c
生成可執行foo
。沒有問題。如果我要改變如下生成文件,這樣我可以從生成文件的命令行
# To make things little complex
TARG=$(EXE)
$(TARG): %.c
gcc -o [email protected] $<
make EXE=foo
上述命令make EXE=foo
傳遞目標說:
"make: *** No rule to make target %.c, needed by
富」。 Stop.`
爲什麼$(TARG)
不在Makefile中target
規則得到擴大呢?