在Unix中,我可以在一个目录中运行'make'而不先cd到那个目录吗?
答案 0 :(得分:293)
make -C /path/to/dir
答案 1 :(得分:94)
正如其他答案所述,make(1)有-C
选项;几个命令有类似的选项(例如tar)。值得注意的是,对于缺少此类选项的其他命令,可以使用以下命令:
(cd /dir/path && command-to-run)
这将在子shell中运行该命令,该子shell首先更改其工作目录(同时保留父shell的工作目录)。这里使用&&
代替;
来捕获无法更改目录的错误情况。
答案 2 :(得分:19)
如果你不想cd到目录的原因是因为你需要留在当前目录中以便以后完成任务,你可以使用pushd和popd:
pushd ProjectDir ; make ; popd
进入ProjectDir,运行make,然后回到原来的位置。
答案 3 :(得分:7)
您也可以使用:
make --directory /path/to/dir
答案 4 :(得分:-1)
makefile:
all:
gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test
run:
./build/test
或
run:
./../build/test
等