Saya mencari alat yang dapat menghasilkan makefile untuk proyek C/C++ untuk kompiler yang berbeda (gcc, microsoft vc++, borland dll) dan platform yang berbeda (Win, Linux, Mac).
ada alat yang bagus untuk pembuatan makefile? [tertutup]
Jawaban (10)
Saran lain yang mungkin ingin Anda pertimbangkan:
Scons adalah pustaka pembangunan lintas platform, lintas kompiler, menggunakan penelusuran Python untuk sistem pembangunan. Digunakan dalam berbagai proyek besar, dan berkinerja sangat baik.
Jika Anda menggunakan Qt, QMake juga merupakan sistem build yang bagus.
CMake juga cukup bagus.
Terakhir, Jika semuanya gagal...
Sudahkah Anda mencoba Generator Makefile Otomatis?
Ini mendukung kompiler berikut:
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
Saya telah menggunakan Bakefile sebelumnya dan cukup berhasil. Ini cukup sederhana dan tampaknya berfungsi dengan baik.
CMake adalah satu-satunya alat yang benar-benar dapat menghasilkan proyek Visual Studio nyata (yaitu bukan proyek "Makefile" yang memanggil alat eksternal), dan yang secara otomatis membuat ulang proyek ketika file input build (CMakeLists.txt) berubah.
Masalah kinerja SCons sudah diketahui secara luas dan merupakan topik yang banyak diperdebatkan di milis SCons.
Saya akan memilih OMake. Ini memperbaiki semua keluhan yang saya alami dengan GNU:
- itu adalah bahasa yang lengkap.
- menggunakan MD5, bukan stempel waktu.
- menyediakan shell minimal yang mengimplementasikan perintah unix paling berguna di semua platform: find, sed, awk, dll...
- bekerja dengan nama jalur gaya unix atau dos.
- didokumentasikan secara luas.
- mendukung pembangunan paralel.
- cepat.
Pembuatan file (M|m)ake secara otomatis membuat saya khawatir tentang apa yang Anda coba lakukan di sini.
Apakah Anda memahami apa yang terjadi di balik selimut saat Anda mengetik make? Atau buatlah? Saya hanya bertanya karena jika Anda tidak melakukannya ketika ada yang rusak, seperti perubahan kode baru yang tidak dimasukkan ke dalam build, Anda akan kesulitan mencoba mengerjakan apa yang telah terjadi.
Untuk mulai memahami pembuatannya, bolehkah saya menyarankan untuk membaca "Mengelola Proyek dengan GNU Make" oleh Robert Mecklenberg. Bab-bab awal membahas cara kerja make. Memperhatikan fakta bahwa make adalah backward chaining adalah salah satu hal terbesar yang dapat Anda lakukan.
Jika tidak, dan sistem Anda tampaknya berfungsi, maka Anda akan menggunakan istilah Para Pemrogram Pragmatis, "pemrograman secara kebetulan". (-:
BTW Artikel bagus tersedia di situs mereka! Dan saya tidak terlibat dengan mereka. YMMV. Yada-yada...
Saya juga akan CMake kedua. Saya telah menggunakannya cukup lama pada proyek multi-platform dan saya sangat puas dengannya.
Salah satu masalah yang perlu dipertimbangkan adalah apakah Anda menginginkan pembuat "makefile" atau sistem pembangunan pengganti? Masalah dengan sistem pembangunan pengganti adalah Anda biasanya tidak mendapatkan integrasi IDE yang baik untuk platform yang penggunanya mengharapkan hal ini (Visual C++). Jika Anda menginginkan pembuat makefile dan bukan sistem pembangunan pengganti, lihat MPC. Ini gratis dan sumber terbuka.
Tambahan terbaru pada daftar pengganti make adalah waf. Dari pengalaman pribadi, SCONS melakukan tugasnya dengan cukup baik.
Saya tidak tahu apakah Anda tertarik dengan pertanyaan ini lagi. Saya sedang mengerjakan proyeksi generator otomatis Makefile serupa yang disebut CodeMate, yang dikembangkan dengan menggunakan Ruby. Mungkin saat ini belum terlalu matang untuk aplikasi besar, tapi saya akan terus mengusahakannya agar lebih baik. Pengguna tidak perlu mengedit file konfigurasi apa pun untuk membangun perangkat lunak, atau setidaknya memang seharusnya demikian. Kurva pembelajaran harus diminimalkan.