संकलन प्रणाली। सरल विन्यास से परे, स्थापित करें, स्थापित करें

सभी या लगभग सभी (और यदि आप भाग्यशाली नहीं हैं) तो हमें स्रोत कोड से एक कार्यक्रम संकलित करना होगा। वास्तव में, अधिकांश परियोजनाओं में प्रोग्राम को स्थापित करने के लिए एक ./configure && मेक && बनाने के लिए पर्याप्त है, लेकिन हम विभिन्न विकल्पों को देखने जा रहे हैं:

GNU मेक

GNU मेक एक निम्न-स्तरीय संकलन प्रणाली है, कुछ चीजें कॉन्फ़िगर की जाती हैं और कोई परीक्षण नहीं किया जाता है:

पेशेवरों:

  • बहुत व्यापक है
  • समझने में सरल
  • तेज

विपक्ष:

  • थोड़ा विन्यास करने योग्य
  • बनाए रखना मुश्किल है
  • परीक्षण नहीं करता है

make

बीएसडी मेक

बीएसडी मेक * बीएसडी ऑपरेटिंग सिस्टम द्वारा वर्तमान में उपयोग किए जाने वाले मेक का एक और संस्करण है। यह जीएनयू में भिन्न है बीएसएन मेक इन फ़ंक्शंस में सबसे व्यापक है हालांकि यह कम व्यापक है।

पेशेवरों:

  • तेज
  • समझने में सरल
  • GNU मेक से अधिक सुविधाएँ

विपक्ष:

  • लिनक्स दुनिया में व्यापक नहीं है
  • परीक्षण नहीं करता है
  • थोड़ा विन्यास करने योग्य
  • बनाए रखना मुश्किल है

make

ऑटोटूलस

ऑटोटूलस आधिकारिक GNU प्रणाली है और कॉन्फ़िगर नामक एक स्क्रिप्ट बनाता है जिसे हमें GNU मेक से संबंधित मेकफाइल उत्पन्न करने के लिए कॉल करना होगा। यह व्यापक रूप से उपयोग किया जाता है, हालांकि, अधिक से अधिक लोग (स्वयं शामिल) सोचते हैं कि यह बहुत बोझिल, कठिन, धीमा और बहुत संगत नहीं है।

पेशेवरों:

  • अत्यधिक विन्यास करने योग्य
  • बहुत व्यापक है

विपक्ष:

  • गैर-यूनिक्स प्रणालियों के बीच थोड़ा पोर्टेबिलिटी
  • बहुत सारे परीक्षण करें (हर व्यक्ति की जाँच करें, और हर बार जाँच कर रहा है)
  • सेटिंग करते समय बहुत धीमी गति से
  • गरीब पिछड़ी अनुकूलता

./configure && make

सीएमके

(मेरी पसंदीदा प्रणाली) CMake एक प्रणाली है जो कई पहलुओं में ऑटोटूल की कमियों के लिए बना है, जैसे कि उनकी भयानक पिछड़ी संगतता और पोर्टेबिलिटी। परीक्षण प्रणाली में सुधार करना जो प्रत्येक परियोजना की आवश्यकताओं के लिए अत्यधिक विन्यास योग्य है। सच्चाई यह है कि अधिक से अधिक परियोजनाएं सीकेई का उपयोग करती हैं जैसे केडीई, पोर्टआडियो, ओग्रे 3 डी, आदि। हम इस प्रकार के सिस्टम को CMakeLists.txt फाइल की बदौलत पहचान सकते हैं जो मेकफाइल या एक्लिप्स या कोडब्लॉक के लिए एक प्रोजेक्ट तैयार करेगा।

पेशेवरों:

  • तेज
  • महान क्रॉस-प्लेटफ़ॉर्म समर्थन
  • आप बहुत ही अनुकूलन योग्य तरीके से परीक्षणों को परिभाषित कर सकते हैं

विपक्ष:

  • पहली बार में समझना मुश्किल
  • आपको एक अमूर्त के साथ काम करना होगा जो पहले डरावना हो सकता है
  • थोड़ा फैलता है, हालांकि थोड़ा कम बढ़ता है

cmake . && make

क्यूमेक

QMake एक प्रणाली है जिसे ट्रोलटेक द्वारा क्यूटी में बनाई गई परियोजनाओं को संकलित करने के लिए डिज़ाइन किया गया है। इस तरह qmake Qt पर बहुत अधिक जोर देती है और आमतौर पर QtCreator जैसे IDE द्वारा उपयोग किया जाने वाला प्रारूप है। यह Qt परियोजनाओं में काफी लोकप्रिय है, लेकिन यह इस वातावरण के बाहर नहीं पाई जाती है:

पेशेवरों:

  • बहुत अच्छी तरह से क्यूटी के साथ एकीकृत
  • तेज
  • क्यूटी के भीतर अच्छा मल्टीप्लायर

विपक्ष:

  • Qt ऐप्स के बाहर असामान्य

qmake . && make

स्कैन

SC / C ++ प्रोजेक्ट्स को संकलित करने के लिए पायथन एक पायथन-आधारित प्रणाली है। ऑटोटूलस, सीएमके या क्यूमेके के विपरीत; SCons मेकफाइल का निर्माण नहीं करता है। SCons बहुत ही परिवर्तनीय हैं, लेकिन सरल ऑपरेशन में शायद यह सबसे धीमा है
पेशेवरों:

  • आसान संशोधन
  • निष्पक्ष परीक्षण करें

विपक्ष:

  • थोड़ा फैला हुआ
  • धीमा

scons

बूस्ट.जम

Boost.Jam Perforce Jam का एक संस्करण है जो लोकप्रिय C ++ Boost पुस्तकालयों में उपयोग किया जाता है, हालांकि संकलन प्रणाली को अलग से उपयोग किया जा सकता है। GNU मेक के विपरीत, Boost.Jam Jamfiles का उपयोग करता है, जो Makefiles का एक बेहतर संस्करण है। वे बीओएस / ज़ेटा / हाइकु पर्यावरण में काफी लोकप्रिय हैं।

पेशेवरों:

  • तेज
  • लिखने के लिए सबसे छोटा

विपक्ष:

  • थोड़ा फैला हुआ
  • परीक्षण करने में कठिनाई

bjam

निंजा

निंजा Google द्वारा विकसित एक प्रणाली है जो मूल रूप से क्रोमियम परियोजना के लिए डिज़ाइन किया गया एक अल्ट्रा-फास्ट बिल्ड सिस्टम प्रदान करता है। निंजा को संशोधित करने के लिए आसान नहीं बनाया गया है, अपने स्वयं के लेखकों के अनुसार, एक प्रणाली जो निंजा उत्पन्न करती है उसे ढूंढना होगा। अनुशंसित सीएमके और जिप हैं।

पेशेवरों:

  • मुई रपीडो

विपक्ष:

  • निंजा को स्पॉन करने के लिए आपको एक और सिस्टम की आवश्यकता है
  • थोड़ा फैला हुआ

ninja

दूसरों

आप किसी भी अन्य सिस्टम का उपयोग कर सकते हैं जैसे कि अपना स्वयं का बैश या पाइथन स्क्रिप्ट। अन्य गैर-देशी भाषाओं के लिए भी जनरेटर हैं जिनका उपयोग ग्रेडल, मावेन, जिप इत्यादि के रूप में किया जा सकता है।


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   Abimaelmartell कहा

    मेक एक संकलन प्रणाली नहीं है, यह अपने स्रोत कोड से बायनेरिज़ (या लक्ष्य) का एक जनरेटर है। इसे टास्क रनर के रूप में भी इस्तेमाल किया जा सकता है।

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

    मैं आपसे सहमत हूं कि ऑटोटूलस काफी बोझिल है, मैं सिर्फ मेकफाइल का उपयोग करना पसंद करता हूं। ऑटोटूलस द्वारा निर्मित मेकफाइल्स को डिबग करना मुश्किल है।

    नमस्ते!

    1.    AdrianArroyoStreet कहा

      टिप्पणी के लिए धन्यवाद!
      मेरी राय में जीएनयू मेक हमेशा मूल मेक प्रोग्राम के लिए अधिक पारंपरिक और वफादार रहा है और बीएसडी मेक हमेशा अधिक अभिनव रहा है, लेकिन हो सकता है कि तुलना करते समय मैंने अन्य चीजों पर ध्यान दिया हो।

      ऑटोटूलस वास्तव में एक बड़ा सिरदर्द है। हाइकू ऑपरेटिंग सिस्टम में योगदानकर्ता के रूप में मुझे ऑटोटूलस के साथ सॉफ्टवेयर पोर्ट करना पड़ा है और यह नरक है। इस गड़बड़ी को ठीक करने से पहले मेकफिल या CMakeLists.txt बनाने के कुछ मामले नहीं हैं।

  2.   चक डेनियल कहा

    मैं इस समय प्रेमके 4 का उपयोग कर रहा हूं, लुआ लिपियों पर आधारित बहुत ही विन्यास और सरल। अगर आपको इसकी जानकारी नहीं है तो देख लें।
    लेख, सरल और संक्षिप्त, उत्कृष्ट संदर्भ पर बधाई।

  3.   हड्डियों कहा

    'make check' का उपयोग मेक का उपयोग करने के बाद संकलन की जांच करने के लिए किया जाता है
    अभिवादन