在Unix中,我可以在一个目录中运行make而不需要__abc1首先到该目录吗?
make
make -C /path/to/dir
正如在其他答案中提到的,make(1)对此有-C选项;有几个命令有类似的选项(例如tar)。值得注意的是,对于其他缺乏此类选项的命令,可以使用以下命令:
-C
(cd /dir/path && command-to-run)
这将在子shell中运行命令,该子shell首先更改了它的工作目录(同时保留父shell的工作目录)。这里使用&&代替;来捕捉目录不能更改的错误情况。
&&
;
如果你不想cd到一个目录的原因是你需要在当前目录中进行后面的任务,你可以使用pushd和popd:
pushd ProjectDir ; make ; popd
它会进入ProjectDir,运行make,然后回到你所在的地方。
你还可以用:
make --directory /path/to/dir
makefile:
all: gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test run: ./build/test
或
run: ./../build/test
等。