สมมติว่าฉันมี makefile ซึ่งมีลักษณะดังนี้:
ทั้งหมด: a_functions.o b_functions.o c_functions.o d_functions.o main.o
gcc -o ทั้งหมด a_functions.o b_functions.o c_functions.o d_functions.o main.o
a_functions.o: a_functions.ค
gcc -c -o a_functions.o a_functions.c
b_functions.o: b_functions.ค
gcc -c -o b_functions.o b_functions.c
c_functions.o: c_functions.ค
gcc -c -o c_functions.o c_functions.c
main.o: main.c
gcc -c -o main.o main.c
ฉันสามารถรวบรวมโดยใช้คำสั่ง
sudo make -f makefile
และโปรแกรมทำงานได้ดีถ้าฉันเรียกใช้
./ทั้งหมด
แต่จะทำอย่างไรถ้าฉันต้องการเพิ่มเช่นคำสั่ง clean ใน makefile
ฉันเพิ่ม
ทำความสะอาด:
rm *.o ทั้งหมด
ที่ส่วนท้ายของ makefile แต่เทอร์มินัลของฉันแสดง
-bash: ./clean: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
เมื่อฉันทำ ./clean
แน่นอน makefile คอมไพล์ใหม่ก็ไม่ทำงานเช่นกัน มันแสดงให้เห็น
ยี่ห้อ: 'ทั้งหมด' เป็นปัจจุบัน
เมื่อฉันทำ sudo make -f makefile
ฉันพบที่นี่ จะแก้ไข makefile ได้อย่างไร? ที่คุณสามารถใช้ได้
$ CFLAGS="-std=c99" ทำ
คำสั่งนี้ในเทอร์มินัลหรือฉันสามารถเพิ่ม
CFLAGS=-std=c99
ใน makefile ของฉัน แต่พวกเขายังคงแสดงอยู่
ทั้งหมดเป็นปัจจุบัน
รูปภาพเป็นเพียงหลักฐานว่าการแก้ไขไม่ได้ผลสำหรับฉัน