如何从任何目录运行make文件?

Din*_*esh 35 make makefile

为了运行make文件,我应该转到make文件的目录,从那里我只能运行make文件。即使我在任何目录中,我该如何做?

Red*_*ick 37

通用解决方案

(cd /other/dir && make)
Run Code Online (Sandbox Code Playgroud)

不会改变你的 shell 的当前目录,但会make在指定的工作目录下运行。

如果命令部分出现错误(例如,目录不存在,或者您无权访问它),&&将确保make不会运行cd

上述方法对各种命令都很有用,而不仅仅是make. 因此,值得学习和记住。

具体解决方案

检查手册页以获取-C选项,例如

make -C /other/dir
Run Code Online (Sandbox Code Playgroud)

几个 Unix 命令开始时没有这个选项,但在某个时间添加了它(例如使用 GNU 实现)

  • 看起来现在大多数 Unix 都有一个 `-C` 选项。详细信息和一些更完整的答案:http://stackoverflow.com/q/453447/357774 (9认同)

小智 31

你可以用

make -C dir
Run Code Online (Sandbox Code Playgroud)

dir在读取指向的 makefile 之前切换到目录。请注意选项-C是大写的。