gpt4 book ai didi

recursion - 递归gmake问题

转载 作者:行者123 更新时间:2023-12-02 23:28:42 24 4
gpt4 key购买 nike

我需要编写一个快速的 makefile 来构建我的所有项目。这是 C++ 代码,我正在使用 gmake。

假设我有一个目录列表,我想 cd 到每个目录,发出 gmake 命令,如果成功,则转到下一个目录,依此类推。

我通过查看 gmake manual 来完成这个

.PHONY: all clean dirs $(DIRS)

dirs: $(DIRS)

$(DIRS): \n\t
$(MAKE) -C $@

它适用于“all”目标 - 如果我只输入 gmake,它就会做正确的事情。但如果我执行 gmake clean 它什么也不做。

我正在学习 gmake,所以我肯定在这里做了一些愚蠢的事情:)

感谢您的帮助。

最佳答案

为了递归地制作第一个目标以外的东西(我猜所有都是你的第一个目标),你需要让子制作知道要构建什么。您可以使用 MAKEFLAGS 和 MAKECMDGOALS 变量来执行此操作。

例如:

$(DIRS):
$(MAKE) -C "$@" $(MAKEFLAGS) $(MAKECMDGOALS)

您的规则没有传递目标名称,例如干净,因此子 make 没有任何工作要做(因为所有内容都已构建)。

关于recursion - 递归gmake问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1245595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com