มีเครื่องมือที่ดีสำหรับการสร้าง makefile หรือไม่? [ปิด]

ฉันกำลังมองหาเครื่องมือที่สามารถสร้าง makefile สำหรับโปรเจ็กต์ C/C++ สำหรับคอมไพเลอร์ต่างๆ (gcc, microsoft vc++, borland ฯลฯ) และแพลตฟอร์มต่างๆ (Win, Linux, Mac)


person Serge    schedule 13.08.2008    source แหล่งที่มา
comment
@LightnessRacesinOrbit ขออภัย   -  person Onur A.    schedule 13.03.2018


คำตอบ (10)


ข้อเสนอแนะอื่น ๆ ที่คุณอาจต้องการพิจารณา:

  • Scons เป็นไลบรารีบิลด์ข้ามแพลตฟอร์มและคอมไพเลอร์ข้ามแพลตฟอร์ม ใช้ Python scruipting สำหรับระบบบิลด์ ใช้ในโครงการขนาดใหญ่หลากหลายและทำงานได้ดีมาก

  • หากคุณใช้ Qt QMake ก็เป็นระบบบิลด์ที่ดีเช่นกัน

  • CMake ก็น่ารักเช่นกัน

  • สุดท้ายนี้ หากสิ่งอื่นทั้งหมดล้มเหลว...

person Thomi    schedule 15.08.2008

คุณได้ลองใช้ เครื่องมือสร้าง Makefile อัตโนมัติ แล้วหรือยัง

รองรับคอมไพเลอร์ต่อไปนี้:

Borland 3.1 
Borland 5.0 
Borland 5.0, 16 bit 
Borland 5.5 
Borland 5.6 
Borland 5.8 
CC 
Gnu g++ 
Gnu g++, dynamic library 
Intel 5, 6, 7 for Linux 
Intel 5, 6, 7 for Linux, dynamic library 
Intel 5, 6, 7 for windows 
Intel 8,9,10 for Linux 
Intel 8,9,10 for Linux, dynamic library 
Intel 8,9 for windows 
Intel 10 for windows 
Visual C++ 5 
Visual C++ 6, 7, 7.1 
Visual C++ 8 
Open Watcom 
Watcom 10A 
Watcom 10A, 16 bit 
person prakash    schedule 13.08.2008

ฉันเคยใช้ Bakefile มาก่อนและประสบความสำเร็จบ้าง มันค่อนข้างง่ายและดูเหมือนว่าจะทำงานได้ดี

person Imbue    schedule 27.08.2008

CMake เป็นเครื่องมือเดียวที่สามารถสร้างโปรเจ็กต์ Visual Studio จริงได้ (เช่น ไม่ใช่ "Makefile" ซึ่งเป็นโปรเจ็กต์ที่เรียกใช้เครื่องมือภายนอก) และจะสร้างโปรเจ็กต์ขึ้นใหม่โดยอัตโนมัติเมื่อไฟล์อินพุตบิลด์ (CMakeLists.txt) เปลี่ยนแปลง

ปัญหาด้านประสิทธิภาพของ SCons เป็นที่รู้จักกันดีและเป็นหัวข้อที่มีการถกเถียงกันอย่างกว้างขวางในรายชื่ออีเมลของ SCons

person JesperE    schedule 17.09.2008

ฉันจะโหวตให้ OMake มันแก้ไขข้อร้องเรียนทั้งหมดที่ฉันมีกับ GNU:

  • มันเป็นภาษาที่เต็มเปี่ยม
  • ใช้ MD5 แทนการประทับเวลา
  • จัดเตรียมเชลล์ขั้นต่ำซึ่งใช้คำสั่ง Unix ที่มีประโยชน์ที่สุดบนทุกแพลตฟอร์ม: find, sed, awk ฯลฯ
  • ใช้ได้กับชื่อพาธสไตล์ยูนิกซ์หรือดอส
  • ได้รับการบันทึกไว้อย่างกว้างขวาง
  • รองรับการสร้างแบบขนาน
  • เร็ว.
person bltxd    schedule 23.10.2008

การสร้าง (M|m)akefiles โดยอัตโนมัติทำให้ฉันกังวลเกี่ยวกับสิ่งที่คุณพยายามทำที่นี่

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

เพื่อเริ่มทำความเข้าใจเกี่ยวกับ make ฉันขอแนะนำให้อ่าน "การจัดการโครงการด้วย GNU Make" โดย Robert Mecklenberg บทแรกๆ ครอบคลุมถึงการทำงานของ make การรับฟังข้อเท็จจริงที่ว่าการผูกมัดแบบย้อนกลับถือเป็นหนึ่งในสิ่งที่ใหญ่ที่สุดที่คุณสามารถทำได้

หากคุณไม่ทำ และระบบของคุณดูเหมือนจะใช้งานได้ คุณจะต้องใช้คำว่า The Pragmatic Programmers "การเขียนโปรแกรมโดยบังเอิญ" (-:

BTW มีบทความดีๆ อยู่ที่เว็บไซต์ของพวกเขา! และฉันไม่เกี่ยวข้องกับพวกเขา YMMV. ญาดา-ญาดา...

person Rob Wells    schedule 27.08.2008

ฉันจะรอง CMake ด้วย ฉันใช้มันมาระยะหนึ่งแล้วกับโปรเจ็กต์ที่มีหลายแพลตฟอร์ม และฉันก็พอใจกับมันมาก

person grosauro    schedule 20.08.2008

ประเด็นหนึ่งที่ต้องพิจารณาคือคุณต้องการผู้สร้าง "makefile" หรือระบบบิลด์ทดแทนหรือไม่ ปัญหาเกี่ยวกับระบบบิลด์ทดแทนคือ โดยทั่วไปแล้ว คุณจะไม่ได้รับการบูรณาการ IDE ที่ดีสำหรับแพลตฟอร์มที่ผู้ใช้คาดหวังสิ่งนี้ (Visual C++) หากคุณต้องการผู้สร้าง makefile แทนที่จะเป็นระบบการสร้างทดแทน โปรดดูที่ MPC ฟรีและโอเพ่นซอร์ส

person Adam Mitz    schedule 23.08.2008

รายการทดแทนล่าสุดคือ waf จากประสบการณ์ส่วนตัว SCONS ทำงานได้ดีทีเดียว

person Gabi Davar    schedule 18.08.2011

ฉันไม่รู้ว่าคุณมีความสนใจกับคำถามนี้อีกต่อไปหรือไม่ ฉันกำลังทำงานกับเครื่องฉายภาพอัตโนมัติ Makefile ที่คล้ายกันที่เรียกว่า CodeMate ซึ่งพัฒนาโดยการใช้ Ruby บางทีมันอาจจะยังไม่โตเต็มที่สำหรับแอปพลิเคชั่นขนาดใหญ่ในตอนนี้ แต่ฉันจะพยายามพัฒนามันต่อไปเพื่อทำให้ดีขึ้น ผู้ใช้ไม่ควรต้องแก้ไขไฟล์การกำหนดค่าใดๆ เพื่อสร้างซอฟต์แวร์ หรืออย่างน้อยก็ควรจะเป็นเช่นนั้น ควรลดเส้นโค้งการเรียนรู้ให้เหลือน้อยที่สุด

person Li Dong    schedule 25.01.2012
comment
ยังมีลิงก์ SO ที่ตายแล้วอีกอัน! ฉันไปที่หน้า GitHub ของคุณด้วยตนเอง และสิ่งที่ฉันเห็นที่นั่นเมื่อ CodeMate เป็นงานสร้างบางอย่างของ Fortran เท่านั้น คุณสร้างโครงการอื่นที่มีชื่อเดียวกันหรือไม่? นี่ ดูเหมือนว่าอาจเป็นอย่างที่คุณหมายถึง - person kirbyfan64sos; 06.03.2015