[linux] 유닉스에서, 먼저 그 디렉토리로 cd하지 않고 디렉토리에서 ‘make’를 실행할 수 있습니까?

유닉스 make에서 먼저 디렉토리에 가지 않고 디렉토리에서 실행할 수 cd있습니까?



답변

make -C /path/to/dir


답변

다른 답변에서 언급했듯이 make (1)에는이 -C 옵션이 있습니다. 여러 명령에는 비슷한 옵션이 있습니다 (예 : tar). 이러한 옵션이없는 다른 명령의 경우 다음을 사용할 수 있습니다.

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

이것은 하위 쉘에서 명령을 실행합니다. 하위 쉘은 먼저 작업 디렉토리가 변경되고 (부모 쉘의 작업 디렉토리는 그대로 둡니다). 디렉토리를 변경할 수없는 오류 사례를 포착 && 하는 대신에 여기 가 사용됩니다 ;.


답변

디렉토리에 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

기타


답변