奇怪的行爲,認爲這種小的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 –