ใน Unix ฉันสามารถเรียกใช้make
ในไดเรกทอรีโดยไม่ต้องcd
'ไปที่ไดเรกทอรีนั้นก่อนได้หรือไม่?
ใน Unix ฉันสามารถเรียกใช้make
ในไดเรกทอรีโดยไม่ต้องcd
'ไปที่ไดเรกทอรีนั้นก่อนได้หรือไม่?
คำตอบ:
make -C /path/to/dir
ดังที่ระบุไว้ในคำตอบอื่น ๆ ทำให้ (1) มี-C
ตัวเลือกสำหรับสิ่งนี้ หลายคำสั่งมีตัวเลือกที่คล้ายกัน (เช่น tar) มันจะมีประโยชน์ที่จะต้องทราบว่าสำหรับคำสั่งอื่น ๆ ที่ไม่มีตัวเลือกดังกล่าวสามารถใช้ต่อไปนี้:
(cd /dir/path && command-to-run)
สิ่งนี้จะรันคำสั่งในเชลล์ย่อยซึ่งมีการเปลี่ยนแปลงไดเร็กทอรีการทำงานก่อน (ขณะที่ทิ้งไดเร็กทอรีการทำงานของพาเรนต์เชลล์ไว้คนเดียว) ที่นี่&&
ใช้แทน;
การจับกรณีข้อผิดพลาดที่ไม่สามารถเปลี่ยนไดเรกทอรี
หากเหตุผลที่คุณไม่ต้องการ cd ไปยังไดเรกทอรีเป็นเพราะคุณต้องอยู่ในไดเรกทอรีปัจจุบันสำหรับงานในภายหลังคุณสามารถใช้ pushd และ popd:
pushd ProjectDir ; make ; popd
สิ่งนั้นจะเข้าสู่ ProjectDir ทำการสร้างและกลับไปยังที่ที่คุณอยู่
นอกจากนี้คุณอาจใช้:
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
เป็นต้น