奇怪的行为,认为这种小的Makefile:的Makefile:在变量赋值
test: var ?= foo
test:
echo $(var)
化妆的文档说?=
分配尚未以前(未定义)分配 一个变量。 但如果通过命令行分配:
make var=1234
一些随机(ASCII,非ASCII,只有空白)字符,而不是1234
打印到终端。 使用的=
代替?=
按预期工作,但不能在我的 情况下,从呼叫拨打使用,因为它会覆盖“继承”,出口任务。 此外,如果不使用目标为基础,但全球的分配,如预期输出 。 这些字符序列从哪里来?
测试在Linux上的Gentoo(GNU使v3.82)和DEB-喘息(GNU使v3.81)。
感谢您的提示!
我无法在OSX 10.7.5上使用GNUMake 3.81重现此操作。 – Beta
在你的例子中'var?= foo'是一个目标,它是一个错字吗? –
不是错字;有条件的分配:http://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html#Target_002dspecific –