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

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

为了运行 make 文件,我应该转到 make 文件的目录,然后才能从那里运行 make 文件。即使我在任何目录中,我该如何做同样的事情?

答案1

通用解决方案

(cd /other/dir && make)

不会改变你的 shell当前目录(因为括号中的内容是在子 shell 中运行的),但将make使用指示的工作目录运行。

如果命令的某个部分出现错误(例如,目录不存在,或者您无权访问该目录),则&&确保不会运行。makecd

上述方法适用于各种命令,而不仅仅是make。因此,值得学习和记住。

具体解决方案

检查手册页中的-C选项,例如

make -C /other/dir

一些 Unix 命令最初没有此选项,但后来添加了此选项(例如 GNU 实现)

答案2

你可以使用

make -C dir

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

答案3

这是一个老问题,但我喜欢使用~/.bashrc别名,如下所示:

alias makeaway="cd /dir/to/make && make && cd -"

答案4

您还可以将它与 Makefile 目标一起使用。

make {your target} -C {your Makefile directory}

例如:

make flcean -C /home/yourlogin/yourdirectory

相关内容