2008-08-13 17 views
39

मैं ऐसे टूल की तलाश में हूं जो विभिन्न कंपेलरों (जीसीसी, माइक्रोसॉफ्ट वीसी ++, बोर्लैंड इत्यादि) और विभिन्न प्लेटफॉर्म (विन, लिनक्स, मैक) के लिए सी/सी ++ प्रोजेक्ट के लिए मेकफ़ाइल उत्पन्न कर सकता है।मेकफ़ाइल पीढ़ी के लिए कोई अच्छा उपकरण?

उत्तर

34

अन्य सुझाव आप चाहते हो सकता है पर विचार करने के:

  • Scons एक पार मंच, पार संकलक निर्माण पुस्तकालय है, का उपयोग करता है अजगर के लिए scruipting निर्माण प्रणाली। विभिन्न बड़ी परियोजनाओं में प्रयुक्त होता है, और बहुत अच्छा प्रदर्शन करता है।

  • यदि आप क्यूटी का उपयोग कर रहे हैं, QMake भी एक अच्छी बिल्ड सिस्टम है।

  • CMake भी बहुत प्यारा है।

  • अंत में, If all else fails...

8

क्या आपने Automatic Makefile Generator को आजमाया है?

यह निम्न compilers के लिए समर्थन करता है:

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 
1

मैं भी दूसरे CMake करेंगे। मैं इसे बहु-मंच परियोजना पर थोड़ी देर के लिए उपयोग कर रहा हूं और मैं इससे बहुत संतुष्ट हूं।

0

विचार करने के लिए एक मुद्दा यह है कि क्या आप "मेकफ़ाइल" निर्माता या प्रतिस्थापन निर्माण प्रणाली चाहते हैं? प्रतिस्थापन निर्माण प्रणालियों के साथ समस्या यह है कि आपको आम तौर पर उन प्लेटफ़ॉर्म के लिए अच्छा आईडीई एकीकरण नहीं मिलता है जिनके उपयोगकर्ता इसकी अपेक्षा करते हैं (विज़ुअल सी ++)। यदि आप प्रतिस्थापन निर्माण प्रणाली के बजाय मेकफ़ाइल निर्माता चाहते हैं, तो MPC पर एक नज़र डालें। यह मुफ़्त और खुला स्रोत है।

4

मैंने कुछ सफलता के साथ Bakefile का उपयोग किया है। यह काफी सरल है और अच्छी तरह से काम करता प्रतीत होता है।

2

स्वचालित पीढ़ी (एम | एम) akefiles मुझे इस बारे में चिंता करता है कि आप यहां क्या करने की कोशिश कर रहे हैं।

क्या आप समझते हैं कि कवर करते समय कवर के तहत क्या चल रहा है? या gmake? मैं केवल इसलिए पूछ रहा हूं क्योंकि यदि आप चीजें तोड़ते नहीं हैं, जैसे कि नए कोड में बदलावों को शामिल नहीं किया जा रहा है, तो आपको जो कुछ हुआ है, उसे करने की कोशिश करने में कठिनाई होगी।

बनाना समझने के लिए, क्या मैं रॉबर्ट मेक्लेनबर्ग द्वारा "Managing Projects with GNU Make" पढ़ने का सुझाव दे सकता हूं। प्रारंभिक अध्याय कवर करते हैं कि कैसे काम कर रहा है। इस तथ्य के आस-पास सुनकर कि पिछड़ा चेनिंग करना सबसे बड़ी चीजों में से एक है जो आप कर सकते हैं।

यदि आप नहीं करते हैं, और आपका सिस्टम काम करने लगता है, तो आप प्रोग्रामैटिक प्रोग्रामर शब्द, "programming by coincidence" का उपयोग करने के लिए होंगे। (-:।। अपनी साइट पर

BTW महान लेख उपलब्ध और मैं उन लोगों के साथ सम्मिलित नहीं हूं YMMV बेकार-बेकार ...

4

CMake केवल उपकरण है जो वास्तव में असली दृश्य स्टूडियो परियोजनाओं उत्पन्न कर सकते हैं (है यानी "मेकफ़ाइल" -प्रोजेक्ट्स जो बाहरी उपकरण पर कॉल नहीं करते हैं), और बिल्ड इनपुट इनपुट फ़ाइल (CMakeLists.txt) में स्वचालित रूप से प्रोजेक्ट को पुन: प्रयास करता है।

स्कॉन्स प्रदर्शन समस्याएं अच्छी तरह से ज्ञात हैं और एक थोरौगली बहस विषय स्कैन मेलिंग सूचियों पर।

3

मैं OMake के लिए वोट दूंगा। यह जीएनयू के साथ मेरे सभी शिकायतों को ठीक करता है:

  • यह एक पूर्ण भाषा है।
  • टाइमस्टैम्प के बजाय MD5 का उपयोग करता है।
  • एक न्यूनतम खोल प्रदान करता है जो सभी प्लेटफॉर्म पर सबसे उपयोगी यूनिक्स कमांड लागू करता है: ढूंढें, sed, awk, आदि ...
  • यूनिक्स या डॉस शैली पथनामों के साथ काम करता है।
  • बड़े पैमाने पर प्रलेखित।
  • समानांतर बिल्डों का समर्थन करता है।
  • तेज़।
0

प्रतिस्थापन की सूची में हालिया जोड़ा waf है। व्यक्तिगत अनुभव से स्कॉन्स नौकरी बहुत अच्छी तरह से करता है।

0

मुझे नहीं पता कि क्या आपको इस प्रश्न पर और रुचि है या नहीं। मैं रूबी का उपयोग करके विकसित CodeMate नामक एक समान मेकफ़ाइल ऑटो जनरेटर प्रक्षेपण पर काम कर रहा हूं। हो सकता है कि यह अभी बड़े आवेदन के लिए परिपक्व नहीं है, लेकिन मैं इसे बेहतर बनाने के लिए इस पर काम करना जारी रखूंगा। उपयोगकर्ताओं को सॉफ़्टवेयर बनाने के लिए किसी भी कॉन्फ़िगरेशन फ़ाइल को संपादित करने की आवश्यकता नहीं है, या कम से कम यह माना जाता है। सीखने की अवस्था को कम किया जाना चाहिए।

+1

फिर भी एक और मृत एसओ लिंक! मैं मैन्युअल रूप से आपके गिटहब पेज पर गया, और जो मैं वहां देखता हूं क्योंकि कोडमैट फोर्ट्रान-केवल कुछ बनाता है। क्या आपने एक ही नाम के साथ एक और प्रोजेक्ट बनाया था? [यह] (https://github.com/shepherddog/CodeMate) ऐसा लगता है कि यह आपके जैसा हो सकता है। – refi64

संबंधित मुद्दे