338 make -C /path/to/dir — bmotmans source 8 脾气暴躁-这不是标准产品;它必须是GNU扩展。由于您说过Linux和Unix,所以不清楚要使用哪种,但是-C选项在Solaris 10(/ usr / ccs / bin / make),AIX(/ usr / bin / make)或HP-UX 11.23(/ usr / bin / make)。不过,四分之一还算不错。 — 乔纳森·莱夫勒 6 它也可以在BSD make中工作,因此它不仅是GNU扩展。 — 克里斯·多德 4 确保“ C”为大写。 — m.r226 16/09/25
101 如其他答案所述,make(1)-C 为此提供了一个选项;几个命令具有相似的选项(例如tar)。请注意,对于缺少此类选项的其他命令,可以使用以下命令: (cd /dir/path && command-to-run) 这将在子外壳程序中运行命令,该子外壳程序首先要更改其工作目录(同时保留父外壳程序的工作目录)。此处&& 用于代替; 无法捕获目录的错误情况。 — 戴夫C source
22 如果您不想CD到目录的原因是因为您需要留在当前目录中以进行后续任务,则可以使用push和popd: pushd ProjectDir ; make ; popd 这将进入ProjectDir,运行make,然后返回您所在的位置。 — 谜题咖喱 source
-3 生成文件: all: gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test run: ./build/test 要么 run: ./../build/test 等等 — Oldpilsbury source 1 答案完全没有回答这个问题-它是关于如何调用make的,而不是如何编写makefile的。 — 彼得