ฉันกำลังมองหาเครื่องมือที่สามารถสร้าง makefile สำหรับโปรเจ็กต์ C/C++ สำหรับคอมไพเลอร์ต่างๆ (gcc, microsoft vc++, borland ฯลฯ) และแพลตฟอร์มต่างๆ (Win, Linux, Mac)
มีเครื่องมือที่ดีสำหรับการสร้าง makefile หรือไม่? [ปิด]
คำตอบ (10)
ข้อเสนอแนะอื่น ๆ ที่คุณอาจต้องการพิจารณา:
Scons เป็นไลบรารีบิลด์ข้ามแพลตฟอร์มและคอมไพเลอร์ข้ามแพลตฟอร์ม ใช้ Python scruipting สำหรับระบบบิลด์ ใช้ในโครงการขนาดใหญ่หลากหลายและทำงานได้ดีมาก
หากคุณใช้ Qt QMake ก็เป็นระบบบิลด์ที่ดีเช่นกัน
CMake ก็น่ารักเช่นกัน
สุดท้ายนี้ หากสิ่งอื่นทั้งหมดล้มเหลว...
คุณได้ลองใช้ เครื่องมือสร้าง 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
ฉันเคยใช้ Bakefile มาก่อนและประสบความสำเร็จบ้าง มันค่อนข้างง่ายและดูเหมือนว่าจะทำงานได้ดี
CMake เป็นเครื่องมือเดียวที่สามารถสร้างโปรเจ็กต์ Visual Studio จริงได้ (เช่น ไม่ใช่ "Makefile" ซึ่งเป็นโปรเจ็กต์ที่เรียกใช้เครื่องมือภายนอก) และจะสร้างโปรเจ็กต์ขึ้นใหม่โดยอัตโนมัติเมื่อไฟล์อินพุตบิลด์ (CMakeLists.txt) เปลี่ยนแปลง
ปัญหาด้านประสิทธิภาพของ SCons เป็นที่รู้จักกันดีและเป็นหัวข้อที่มีการถกเถียงกันอย่างกว้างขวางในรายชื่ออีเมลของ SCons
ฉันจะโหวตให้ OMake มันแก้ไขข้อร้องเรียนทั้งหมดที่ฉันมีกับ GNU:
- มันเป็นภาษาที่เต็มเปี่ยม
- ใช้ MD5 แทนการประทับเวลา
- จัดเตรียมเชลล์ขั้นต่ำซึ่งใช้คำสั่ง Unix ที่มีประโยชน์ที่สุดบนทุกแพลตฟอร์ม: find, sed, awk ฯลฯ
- ใช้ได้กับชื่อพาธสไตล์ยูนิกซ์หรือดอส
- ได้รับการบันทึกไว้อย่างกว้างขวาง
- รองรับการสร้างแบบขนาน
- เร็ว.
การสร้าง (M|m)akefiles โดยอัตโนมัติทำให้ฉันกังวลเกี่ยวกับสิ่งที่คุณพยายามทำที่นี่
คุณเข้าใจสิ่งที่เกิดขึ้นภายใต้หน้าปกเมื่อคุณพิมพ์ make หรือไม่? หรือเมค? ฉันแค่ถามเพราะถ้าคุณไม่ทำเมื่อสิ่งต่าง ๆ เสียหาย เช่น การเปลี่ยนแปลงโค้ดใหม่ที่ไม่ได้รวมอยู่ในบิลด์ คุณจะมีปัญหาในการพยายามทำงานในสิ่งที่เกิดขึ้น
เพื่อเริ่มทำความเข้าใจเกี่ยวกับ make ฉันขอแนะนำให้อ่าน "การจัดการโครงการด้วย GNU Make" โดย Robert Mecklenberg บทแรกๆ ครอบคลุมถึงการทำงานของ make การรับฟังข้อเท็จจริงที่ว่าการผูกมัดแบบย้อนกลับถือเป็นหนึ่งในสิ่งที่ใหญ่ที่สุดที่คุณสามารถทำได้
หากคุณไม่ทำ และระบบของคุณดูเหมือนจะใช้งานได้ คุณจะต้องใช้คำว่า The Pragmatic Programmers "การเขียนโปรแกรมโดยบังเอิญ" (-:
BTW มีบทความดีๆ อยู่ที่เว็บไซต์ของพวกเขา! และฉันไม่เกี่ยวข้องกับพวกเขา YMMV. ญาดา-ญาดา...
ฉันจะรอง CMake ด้วย ฉันใช้มันมาระยะหนึ่งแล้วกับโปรเจ็กต์ที่มีหลายแพลตฟอร์ม และฉันก็พอใจกับมันมาก
ประเด็นหนึ่งที่ต้องพิจารณาคือคุณต้องการผู้สร้าง "makefile" หรือระบบบิลด์ทดแทนหรือไม่ ปัญหาเกี่ยวกับระบบบิลด์ทดแทนคือ โดยทั่วไปแล้ว คุณจะไม่ได้รับการบูรณาการ IDE ที่ดีสำหรับแพลตฟอร์มที่ผู้ใช้คาดหวังสิ่งนี้ (Visual C++) หากคุณต้องการผู้สร้าง makefile แทนที่จะเป็นระบบการสร้างทดแทน โปรดดูที่ MPC ฟรีและโอเพ่นซอร์ส
รายการทดแทนล่าสุดคือ waf จากประสบการณ์ส่วนตัว SCONS ทำงานได้ดีทีเดียว
ฉันไม่รู้ว่าคุณมีความสนใจกับคำถามนี้อีกต่อไปหรือไม่ ฉันกำลังทำงานกับเครื่องฉายภาพอัตโนมัติ Makefile ที่คล้ายกันที่เรียกว่า CodeMate ซึ่งพัฒนาโดยการใช้ Ruby บางทีมันอาจจะยังไม่โตเต็มที่สำหรับแอปพลิเคชั่นขนาดใหญ่ในตอนนี้ แต่ฉันจะพยายามพัฒนามันต่อไปเพื่อทำให้ดีขึ้น ผู้ใช้ไม่ควรต้องแก้ไขไฟล์การกำหนดค่าใดๆ เพื่อสร้างซอฟต์แวร์ หรืออย่างน้อยก็ควรจะเป็นเช่นนั้น ควรลดเส้นโค้งการเรียนรู้ให้เหลือน้อยที่สุด