我是 Linux 新手,对 Makefile 更是如此。
在 Linux 中,“make folder/path/clean”与在文件夹/path/中运行“make clean”命令相同吗?
(文件夹/路径/指的是任意目录。)
除了这个问题之外,是否可以对 Linux 中的这种语法(命令和参数)进行概括?
根据评论和建议答案进行更新:谢谢,我学到了一些新东西。我还发现我使用的 Makefile (openwrt) 与普通的 GNU Makefile 不同,因为它具有更多功能。
总结一下,主要问题中的两个命令是不一样的。
Jos*_* R. 10
要执行make clean
的folder/path
,你想
make -C folder/path clean
Run Code Online (Sandbox Code Playgroud)
不过,该-C
开关不是 POSIX(请参阅评论)。它至少适用于 GNU make
,make
如果您运行的是 Linux ,它就是您所拥有的。
不它不是。除非您folder/path/clean
在执行的目录中有规则,否则您的语法将不起作用make folder/path/clean
。
例如,您可以在 make 文件中制定递归清理规则以(也许?)实现您想要的。例如:
recursive-clean:
(cd folder/path; make clean)
...
Run Code Online (Sandbox Code Playgroud)
对于您拥有的每个目录,或者只是对所有目录等进行 for 循环。