关于 dir 变量的 Makefile 示例问题

程序员25

你好我对makefile有点陌生,我知道基础知识,并认为我会通过我在网上找到的一个例子来工作。但是,我遇到了一些看起来不正确的事情,我希望有人可以帮助解决问题。该示例可以在以下链接中找到:https ://riptutorial.com/makefile/example/21376/building-from-different-source-folders-to-different-target-folders

我的具体问题是关于以下行:

SOURCEDIRS = $(foreach dir, $(DIRS), $(addprefix $(SOURCEDIR)/, $(dir)))

我想知道当没有在任何地方分配 dir 变量时,makefile 如何评估 $(dir) ?dir 是某种预定义的 GNU Makefile 变量还是我遗漏了什么?任何帮助表示赞赏,谢谢

贝塔

首先,抬头看foreach该函数遍历,依次$(DIRS)分配它的每个单词,并评估这具有预先添加到 中的每个单词的效果dir$(addprefix $(SOURCEDIR)/, $(dir))$(SOURCEDIR)/$(DIRS)

然后抬头看addprefix这个函数可以自己完成所有的工作,所以foreach在这个例子中是完全没有必要的。这就足够了:

SOURCEDIRS = $(addprefix $(SOURCEDIR)/,$(DIRS)) 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章