不能覆盖特定目标变量

问题描述 投票:1回答:1

我有这样的Makefile。

print: var1=inside

print:
    @echo $(var1)

当我运行 var1=outside make -e print. 我希望看到。

outside

因为...:

命令行中提供的变量(如果'-e'选项有效,环境中的变量也是如此)将优先考虑。

但我得到的是

inside

这是个正确的输出吗?

makefile gnu-make
1个回答
2
投票

这是预料之中的,是否正确我想取决于你问谁。

-e 选项对makefile中的 "全局 "变量有效,但特定目标变量优先于全局范围的变量。

我个人认为 -e 是一个错误,从来没有应该存在。 但是,你知道,POSIX和所有。 即使它存在,我也建议避免使用它。 它太容易把你的编译工作搞得一团糟。

ETA 好吧,也许这不是预期。 也许这是一个错误。 你从哪里得到你提供的那句话? 仅仅从225页的文件中引用了这句话,很难说......如果能提供链接或至少是章节名称,会很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.