我对 Linux 还不熟悉,尤其对 Makefile 不熟悉。
在Linux中,“makefolder/path/clean”与在folder/path/中运行“make clean”命令相同吗?
(folder/path/ 指任意目录。)
除了这个问题之外,是否可以对 Linux 中的这种语法(命令和参数)进行概括?
根据评论和建议答案进行更新:谢谢,我学到了一些新东西。我还发现我使用的 Makefile (openwrt) 与普通的 GNU Makefile 不同,因为它有更多的功能。
总结一下,主要问题中的两个命令不一样。
答案1
要执行make clean
,folder/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 循环。