在 Unix 中,我可以运行“make”吗? 在一个目录中而不先 cd 到该目录?

发布于 2024-07-12 04:27:25 字数 73 浏览 7 评论 0原文

在 Unix 中,我可以在目录中运行 make 而无需先 cd' 进入该目录吗?

In Unix, can I run make in a directory without cd'ing to that directory first?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

感受沵的脚步 2024-07-19 04:27:25

make -C /path/to/dir

make -C /path/to/dir

情绪失控 2024-07-19 04:27:25

正如其他答案中所述, make(1) 为此有一个 -C 选项; 有几个命令有类似的选项(例如 tar)。 值得注意的是,对于缺少此类选项的其他命令,可以使用以下命令:

(cd /dir/path && command-to-run)

这在子 shell 中运行命令,该子 shell 首先更改其工作目录(同时保留父 shell 的工作目录)。 这里使用 && 代替 ; 来捕获无法更改目录的错误情况。

As noted in other answers, make(1) has a -C option for this; several commands have similar options (e.g. tar). It is useful to note that for other commands which lack such options the following can be used:

(cd /dir/path && command-to-run)

This runs the command in a sub-shell which first has its working directory changed (while leaving the working directory of the parent shell alone). Here && is used instead of ; to catch error cases where the directory can not be changed.

我不是你的备胎 2024-07-19 04:27:25

如果您不想 cd 到某个目录的原因是因为您需要保留在当前目录中以执行后续任务,则可以使用 Pushd 和 popd:

pushd ProjectDir ; make ; popd

这会进入 ProjectDir,运行 make,然后返回到您所在的位置是。

If the reason you don't want to cd to a directory is because you need to stay in the current directory for a later task, you can use pushd and popd:

pushd ProjectDir ; make ; popd

That goes into the ProjectDir, runs make, and goes back to where you were.

梦开始←不甜 2024-07-19 04:27:25

您也可以使用:

make --directory /path/to/dir

Also you may use:

make --directory /path/to/dir
同尘 2024-07-19 04:27:25

makefile:

all:
    gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test

run:
    ./build/test

run:
    ./../build/test

等等。

makefile:

all:
    gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test

run:
    ./build/test

or

run:
    ./../build/test

etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文