在 Linux 中,'make folder/path/clean' 与在文件夹/路径中运行 'make clean' 命令相同吗?

tec*_*ech 4 make directory

我是 Linux 新手,对 Makefile 更是如此。

在 Linux 中,“make folder/path/clean”与在文件夹/path/中运行“make clean”命令相同吗?

(文件夹/路径/指的是任意目录。)

除了这个问题之外,是否可以对 Linux 中的这种语法(命令和参数)进行概括?

根据评论和建议答案进行更新:谢谢,我学到了一些新东西。我还发现我使用的 Makefile (openwrt) 与普通的 GNU Makefile 不同,因为它具有更多功能。

总结一下,主要问题中的两个命令是不一样的。

Jos*_* R. 10

要执行make cleanfolder/path,你想

make -C folder/path clean
Run Code Online (Sandbox Code Playgroud)

不过,该-C开关不是 POSIX(请参阅评论)。它至少适用于 GNU makemake如果您运行的是 Linux ,它就是您所拥有的。


mmt*_*qir 5

不它不是。除非您folder/path/clean在执行的目录中有规则,否则您的语法将不起作用make folder/path/clean

例如,您可以在 make 文件中制定递归清理规则以(也许?)实现您想要的。例如:

recursive-clean:
  (cd folder/path; make clean)
  ...
Run Code Online (Sandbox Code Playgroud)

对于您拥有的每个目录,或者只是对所有目录等进行 for 循环。