我有这样的Makefile。
print: var1=inside
print:
@echo $(var1)
当我运行 var1=outside make -e print
. 我希望看到。
outside
命令行中提供的变量(如果'-e'选项有效,环境中的变量也是如此)将优先考虑。
但我得到的是
inside
这是个正确的输出吗?
这是预料之中的,是否正确我想取决于你问谁。
的 -e
选项对makefile中的 "全局 "变量有效,但特定目标变量优先于全局范围的变量。
我个人认为 -e
是一个错误,从来没有应该存在。 但是,你知道,POSIX和所有。 即使它存在,我也建议避免使用它。 它太容易把你的编译工作搞得一团糟。
ETA 好吧,也许这不是预期。 也许这是一个错误。 你从哪里得到你提供的那句话? 仅仅从225页的文件中引用了这句话,很难说......如果能提供链接或至少是章节名称,会很有帮助。