2014-09-19 12 views
9

मैंने प्रलेखन पढ़ा।सीएमके जनरेटर क्या है?

इसे कहते हैं:

A CMake Generator is responsible for writing the input files for a native build system. 

वास्तव में क्या मतलब है?

यदि मेरे पास मेरे प्रोजेक्ट में सी ++ फाइलों का एक सेट है, तो क्या ये इनपुट फाइलें हैं?

यदि मैं लिनक्स का उपयोग कर रहा हूं, तो डिफ़ॉल्ट रूप से मेरा मूल निर्माण प्रणाली क्या है? Make?

जनरेटर द्वारा इनपुट फ़ाइलों को written क्यों होना चाहिए यदि वे पहले से मौजूद हैं?

उत्तर

12

जनरेटर क्या है?

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

तो बिल्ड सिस्टम क्या है?

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

उदाहरण के लिए, एक बहु-स्तरीय निर्माण प्रणाली में, एक निष्पादन योग्य किसी अन्य निर्माण की निर्माण प्रक्रिया में उपयोग किए जाने के लिए बनाया जा सकता है।

उपकरण एक प्रणाली पर इस्तेमाल किया श्रृंखला के आधार पर, CMake CMakeLists.txt में जिक्र किया गया और .cmake फ़ाइलों का समर्थन स्रोत फ़ाइलों का निर्माण अनुमति देने के लिए एक से अधिक फ़ाइलों और फ़ोल्डरों उत्पन्न होगा।

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

सीएमके में Command-Line, IDE, और Extra जेनरेटर शामिल हैं।

कमांड-लाइन उपकरण जेनरेटर

इन जनरेटरों के लिए कर रहे हैं का निर्माण कमांड लाइन, उपकरण निर्माण मेक और निंजा की तरह। चयनित उपकरण श्रृंखला को सीएमके के साथ बिल्ड सिस्टम बनाने से पहले कॉन्फ़िगर किया जाना चाहिए।

निम्नलिखित का समर्थन कर रहे (**):

  • बोर्लेन्ड Makefiles
  • MSYS Makefiles
  • MinGW Makefiles
  • Nmake Makefiles
  • Nmake Makefiles JOM
  • निंजा
  • यूनिक्स मेकफ़ाइल
  • Watcom WMake

आईडीई उपकरण बिल्ड जेनरेटर

ये जनरेटर एकीकृत विकास वातावरण है कि उनके अपने संकलक में शामिल हैं के लिए कर रहे हैं। उदाहरण विजुअल स्टूडियो और एक्सकोड हैं जिनमें मूल रूप से एक कंपाइलर शामिल है।

निम्नलिखित का समर्थन कर रहे (**):

  • दृश्य स्टूडियो 6
  • दृश्य स्टूडियो 7
  • दृश्य स्टूडियो 7 .NET 2003
  • दृश्य स्टूडियो 8 2005
  • दृश्य स्टूडियो 9 2008
  • विजुअल स्टूडियो 10 2010
  • विजुअल स्टूडियो 11 2012
  • दृश्य स्टूडियो 12 2013
  • दृश्य स्टूडियो 14 2015
  • दृश्य स्टूडियो 15 2017
  • ग्रीन हिल्स बहु
  • Xcode

अतिरिक्त जेनरेटर

ये जनरेटर बना रहे एक कॉन्फ़िगरेशन एक वैकल्पिक आईडीई उपकरण के साथ काम करने के लिए और एक आईडीई या कॉम के साथ शामिल किया जाना चाहिए मंडल लाइन जनरेटर।

निम्नलिखित का समर्थन कर रहे (**):

  • codeblocks
  • CodeLite
  • ग्रहण CDT4
  • KDevelop3
  • केट
  • उदात्त पाठ 2

यदि मेरे पास मेरे प्रोजेक्ट में सी ++ फाइलों का एक सेट है, तो क्या ये इनपुट फाइलें हैं?

हां, वे इनपुट फ़ाइलों के हैं। मेक बिल्ड सिस्टम के लिए आपके पास मेकफ़ाइल भी है। विजुअल स्टूडियो के लिए आपके पास एक समाधान फ़ाइल (.sln) है। दोनों प्रणालियों के साथ अतिरिक्त फाइलें आवश्यक हैं कि सीएमके जानता है कि एक उचित CMakeLists.txt फ़ाइल को कैसे बनाया जाए।

यदि मैं लिनक्स का उपयोग कर रहा हूं, तो डिफ़ॉल्ट रूप से मेरा मूल निर्माण प्रणाली क्या है? बनाना?

आम तौर पर, हाँ, लेकिन अन्य निर्माण प्रणालियों को निंजा की तरह स्थापित किया जा सकता है।

जनरेटर द्वारा इनपुट फ़ाइलों को क्यों लिखा जाना चाहिए यदि वे पहले से मौजूद हैं?

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

** documentation के अनुसार सीएमके संस्करण 3.9

के लिए
0

जहां तक ​​मुझे पता है कि यूनिक्स में मानक मूल निर्माण प्रणाली "जीएनयू मेक (जीएमके)" को "मेक" के नाम से जाना जाता है। Google लोगों ने "निंजा" नामक एक अलग टूल भी जारी किया।

2

एक सीएमके जेनरेटर मूल निर्माण प्रणाली के लिए इनपुट फ़ाइलों को लिखने के लिए ज़िम्मेदार है।

का अर्थ है कि कोई भी जनरेटर निर्दिष्ट नहीं होने पर सीएमके मूल निर्माण प्रणाली के लिए स्क्रिप्ट तैयार करता है। लिनक्स में डिफ़ॉल्ट बिल्ड सिस्टम Make है और इसकी इनपुट फ़ाइल makefiles है, जिसे तब व्याख्या की जाती है और एक तदनुसार एक क्रिया निष्पादित की जाती है। सीएमके निर्माण स्क्रिप्ट के पहले निष्पादन से पहले मौजूद नहीं है।

सी ++ स्रोत फ़ाइलें (या कोई अन्य स्रोत फ़ाइलें) एक बिल्ड सिस्टम में इनपुट फाइल नहीं हैं। सिस्टम स्क्रिप्ट बनाएं बाइनरी निष्पादन योग्य बनाने के लिए स्रोत फ़ाइल को कैसे प्रबंधित करें निर्दिष्ट करें।