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

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

我对 Linux 还不熟悉,尤其对 Makefile 不熟悉。

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

(folder/path/ 指任意目录。)

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

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

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

答案1

要执行make cleanfolder/path你想要

make -C folder/path clean

不过,该-C开关不是 POSIX(请参阅注释)。它至少适用于 GNU ,如果您运行的是 Linux,make那么您就拥有 GNU。make

答案2

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

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

recursive-clean:
  (cd folder/path; make clean)
  ...

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

相关内容