คำอธิบายว่า makefile นี้ทำงานอย่างไร

ฉันพบ makefile ที่นี่ ขณะที่อ่านเกี่ยวกับเครื่องมืออัตโนมัติ

ฉันไม่เคยใช้ makefile แบบนี้ ฉันลองด้วยตัวเองแล้ว
เนื้อหาของ makefile ที่ฉันเขียนคือ:

all: HelloWorld

clean:
    rm -f HelloWorld *.o

โฟลเดอร์ที่มี makefile มีไฟล์เพิ่มอีก 1 ไฟล์ HelloWorld.c

การรัน make สำเร็จด้วยผลลัพธ์ต่อไปนี้:

$> make
cc     HelloWorld.c   -o HelloWorld

ตอนนี้ฉันลองทดลองแล้ว และใน makefile ฉันเปลี่ยนชื่อเป้าหมายสำหรับ all เป็น HelloWorl ครั้งนี้ make ล้มเหลวโดยมีข้อผิดพลาดดังต่อไปนี้:

$> make
make: *** No rule to make target `HelloWorl', needed by `all'.  Stop.

โปรดอธิบายพฤติกรรมนี้ของ make ค้นหาและรวบรวมแหล่งที่มาโดยอัตโนมัติ

ความเข้าใจของฉันคือมันกำลังสร้างชื่อแหล่งที่มาจากชื่อเป้าหมายโดยการต่อท้าย .c และคอมไพล์โดยใช้คอมไพเลอร์เริ่มต้น cc


person Don't You Worry Child    schedule 13.11.2013    source แหล่งที่มา


คำตอบ (1)


ความเข้าใจของคุณส่วนใหญ่ถูกต้อง นี่เป็นหนึ่งในกฎโดยนัย อย่างไรก็ตาม make จริงๆ แล้ว make คอมไพล์ไฟล์โดยใช้คอมไพเลอร์ใน CC ตัวแปร< ของ make /ก>.

person Ramchandra Apte    schedule 13.11.2013