考虑这个小的 Makefile:
test: var ?= foo
test:
echo $(var)
make的文档说?=
分配了一个以前没有分配过的变量(未定义)。但如果通过命令行分配:
make var=1234
一些随机(ASCII、非 ASCII、仅空白)字符而不是1234
打印到终端。使用=
而不是?=
按预期工作,但在我的情况下不能使用,因为它覆盖了“继承”,从调用 make 导出的分配。此外,如果不使用基于目标但全局分配,则输出符合预期。这些字符序列来自哪里?
在 linux gentoo (GNU make v3.82) 和 deb-wheezy (GNU make v3.81) 上测试。
感谢您的提示!