แก้ไข: ไม่ได้ระบุเป้าหมายและไม่พบ makefile



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

ไม่ว่าคุณจะทำงานกับ Ubuntu, Debian หรือ Red Hat คุณอาจเห็นข้อผิดพลาดที่อ่าน make: *** ไม่ได้ระบุเป้าหมายและไม่พบ makefile หยุด. เนื่องจากนี่เป็นปัญหาทั่วไปที่เกี่ยวข้องกับ GNU Make โดยรวมคุณอาจเห็นปัญหานี้ในการใช้งาน Unix นับไม่ถ้วน หมายความว่าไม่มีไฟล์ชื่อ makefile หรือ Makefile ในไดเรกทอรีการทำงานปัจจุบันของคุณ โชคดีที่เป็นข้อผิดพลาดที่แก้ไขได้ง่าย



วิธีที่ 1: ค้นหา Makefile ในไดเรกทอรีปัจจุบัน

คุณอาจต้องการลองเรียกใช้ไฟล์ ทำ สั่งอีกครั้งในไดเร็กทอรีปัจจุบันเพื่อดูว่าเกิดข้อผิดพลาดเดียวกันกับคุณหรือไม่ นี่เป็นสิ่งสำคัญอย่างยิ่งหากคุณเปิดหน้าต่างเทอร์มินัลใหม่และพยายามค้นหาไดเร็กทอรีที่ถูกต้องแล้วหรือหากคุณใช้คำสั่ง cd ตั้งแต่ครั้งสุดท้ายที่คุณพยายามเรียกใช้ GNU make



สมมติว่าเป็นเช่นนั้นให้ลองเรียกใช้ไฟล์ ls หรือ ถึงคุณ เพื่อดูว่าไฟล์ใดอยู่ในไดเร็กทอรีปัจจุบันของคุณ คุณอาจไม่ได้อยู่ในส่วนที่ถูกต้องของแผนผังไดเรกทอรี หากคุณสังเกตเห็นว่าคุณเห็นไดเร็กทอรีที่อยู่ในรูท / ไดเร็กทอรีหรือโฮม ~ ไดเร็กทอรีของคุณคุณจะต้องเรียกใช้คำสั่ง cd เพื่อวางตำแหน่งตัวเองในตำแหน่งที่ถูกต้องเพื่อรันคำสั่ง make

มีโอกาสที่คุณจะพบว่าตัวเองอยู่ห่างไกลจากที่ที่คุณคาดหวังไว้ ในตัวอย่างของเราเราลองเรียกใช้ make จากไดเร็กทอรี / var / crash และพบว่ามันใช้ไม่ได้เลย ไม่สามารถเรียกใช้จากที่นี่ได้เนื่องจากไฟล์เดียวในตำแหน่งนี้มาจากรายงานข้อขัดข้องที่ไม่เกี่ยวข้อง

เป็นไปได้ว่าคุณจะต้องการเรียกใช้คำสั่ง make จากไดเร็กทอรีที่อยู่ในไดเรกทอรีหลักของคุณ ตัวอย่างเช่นหากคุณกำลังสร้าง GNU nano เวอร์ชันล่าสุดจากซอร์สคุณอาจมีไดเร็กทอรีอยู่ที่ ~ / nano-2.9.6 ที่คุณสามารถ cd ถึงแล้วเรียกใช้ make อีกครั้ง คุณอาจต้องการลองวิ่ง ls อีกครั้งก่อนที่คุณจะพยายามสร้างเพื่อให้แน่ใจว่ามี makefile อยู่ในไดเร็กทอรีเพื่อให้คุณสร้างจาก

โปรดทราบว่าคุณจะต้องกำหนดค่าการติดตั้งก่อน คำสั่ง config สร้างสภาพแวดล้อมที่สมบูรณ์แบบเพื่อให้คอมไพเลอร์ GNU เจริญรุ่งเรือง หากคุณไม่พบ makefile แม้แต่ในไดเรกทอรีโครงการที่ถูกต้องให้เรียกใช้ ./configure ในขณะที่คุณยังอยู่ข้างในตามด้วย ทำ คำสั่ง หากคอมไพล์ถูกต้องคุณสามารถติดตั้งโปรเจ็กต์ของคุณด้วยไฟล์ sudo ทำการติดตั้ง แต่อย่าลืมว่าคุณไม่ต้องการสร้างอะไรเป็นรูทดังนั้นคุณจะไม่ต้องการเรียกใช้ sudo make หรือสิ่งอื่นใดนอกการติดตั้ง

วิธีที่ 2: การระบุ Makefile แบบกำหนดเอง

สมมติว่าแก้ไขปัญหาได้แล้วคุณไม่ต้องทำอะไรเพิ่มเติม อย่างไรก็ตามมีกรณีการใช้งานพิเศษสองกรณีที่ควรพิจารณาหากวิธีการก่อนหน้านี้ไม่สามารถแก้ไขปัญหาของคุณได้ ทั้งสองอย่างนี้เกี่ยวข้องกับการเขียน makefile ของคุณเองสำหรับโครงการที่คุณกำหนดค่าด้วยมือ

คุณสามารถระบุ makefile ที่กำหนดเองซึ่งเรียกว่าสิ่งอื่นที่ไม่ใช่ makefile โดยใช้ตัวเลือก -f ตัวอย่างเช่นหากคุณมี makefile สำรองชื่อ makefile.bak คุณอาจระบุโดยเรียกใช้ ทำให้ -f makefile.bak จากบรรทัดคำสั่ง คุณสามารถแทนที่ makefile.bak ด้วยชื่อไฟล์ใดก็ได้และคุณสามารถรวมอ็อพชัน -i ได้หากคุณต้องการละเว้นข้อผิดพลาดใน makefile ที่กำหนดเองหรือล้าสมัยในขณะที่คอมไพเลอร์กำลังทำงาน โดยปกติจะไม่แนะนำเนื่องจากคุณอาจต้องการแก้ไข makefile ของคุณหากมีสิ่งผิดปกติเกิดขึ้น

กรณีการใช้งานอื่น ๆ ที่เกี่ยวข้องอย่างใกล้ชิดเกี่ยวข้องกับสถานการณ์ที่ความอ่อนไหวของตัวพิมพ์เล็กและใหญ่เป็นปัญหา ต่อไปนี้เป็นไฟล์แยกต่างหากทั้งหมดในวิธีการทำธุรกิจของ Unix:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

โปรแกรมที่กำหนดค่าแบบกำหนดเองอาจไม่สามารถจดจำ makefile ที่มีตัวพิมพ์ใหญ่แปลก ๆ หากคุณเขียนด้วยลายมือสำหรับโครงการเขียนโค้ดที่คุณกำลังทำอยู่คุณอาจต้องการเปลี่ยนชื่อ makefile แม้ว่าคุณจะสามารถใช้ตัวเลือก -i เพื่อให้แน่ใจว่า GNU make สามารถค้นหาได้ โปรดจำไว้ว่าหากคุณเขียนทุกอย่างถูกต้องคุณยังสามารถเรียกใช้. / กำหนดค่าจากโครงการของคุณเองเพื่อบังคับให้สร้างสภาพแวดล้อมที่เหมาะสมและหลีกเลี่ยงปัญหานี้เพื่อเริ่มต้นด้วย

อ่าน 3 นาที