मेकफ़ाइल वेरिएबल्स और तर्क: एक व्यापक गाइड

Mekafa Ila Veri Ebalsa Aura Tarka Eka Vyapaka Ga Ida



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

एक मूल मेकफ़ाइल में तीन भाग होते हैं:







  • प्रोजेक्ट-संबंधित डेटा को संग्रहीत करने के लिए वेरिएबल्स को इकाइयां लेबल किया गया है।
  • नियम निर्दिष्ट करते हैं कि मेकफ़ाइल में निर्भरता का उपयोग करके एक इच्छित फ़ाइल कैसे बनाई जाए।
  • मेकफ़ाइल को उत्पन्न करने के लिए डिज़ाइन किए गए दस्तावेज़ों को लक्ष्य कहा जाता है।

मेकफ़ाइल वेरिएबल्स

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



मेकफ़ाइल वेरिएबल बनाएं

मेकफ़ाइल में एक साधारण वेरिएबल को परिभाषित करने के लिए, हमें इसे एक साधारण शीर्षक से शुरू करना चाहिए जिसके बाद '=' चिन्ह और वह मान जो इसमें संग्रहीत किया जाएगा:



name_of_variable = value_of_variable





दूसरी ओर, किसी प्रोजेक्ट के त्वरित और सर्वोत्तम प्रदर्शन के लिए '=' के बजाय ':=' आज़माने को प्राथमिकता और अनुशंसा दी जाती है।

name_of_variable := value_of_variable



उदाहरण के लिए, हम C प्रोजेक्ट के लिए एक मेकफ़ाइल बनाते हैं और एक 'CC' वेरिएबल घोषित करते हैं। यह वेरिएबल उस कंपाइलर को संग्रहीत करता है जो C के लिए निष्पादन योग्य है, अर्थात 'gcc', एक मान के रूप में। चौथी पंक्ति में, हम 'CFLAGS' वैरिएबल बनाते हैं जिसका उपयोग संकलन प्रक्रिया के दौरान चेतावनी देने के लिए किया जाता है। यह आपके द्वारा चलाए जा रहे प्रोजेक्ट के अनुकूलन को बढ़ाने और किसी भी समस्या से बचने के लिए है।

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

उदाहरण के लिए, SRCS वेरिएबल एक स्रोत फ़ाइल सेट करता है जबकि OBJS वेरिएबल SRCS वेरिएबल का उपयोग करके एक नई ऑब्जेक्ट फ़ाइल सेट करता है।

सीसी = जी.सी.सी
सीएफएलजीएस = -दीवार
लक्ष्य = नया
एसआरसीएस = मुख्य.सी
ओबीजेएस = $ ( एसआरसीएस:.सी=.ओ )

मेकफ़ाइल वेरिएबल्स का उपयोग करें

मेकफ़ाइल वेरिएबल्स को घोषित या परिभाषित करने के बाद, उन्हें मेकफ़ाइल में उपयोग करने योग्य बनाना बहुत आवश्यक है। मेकफ़ाइल वेरिएबल का उपयोग करने के लिए, आपको '$' चिह्न का उपयोग करना होगा और उसके बाद '()' या '{}' ब्रैकेट का उपयोग करना होगा। उदाहरण के लिए, हम लक्ष्य निष्पादन योग्य फ़ाइल बनाने के लिए '$()' का उपयोग करते हैं। इस चरण को करने के बाद, लक्ष्य फ़ाइल प्रतिक्रिया देने में सक्षम होगी।

सभी: $ ( लक्ष्य )

मेकफ़ाइल तर्क

जब भी मेकफ़ाइल को कॉल किया जाता है, तो उसे एक पैरामीटर के रूप में एक मान प्रदान किया जाता है जिसे 'तर्क' के रूप में जाना जाता है। तर्कों का उपयोग किसी म्यूटेबल के मूल मान को ओवरराइड करने या रनटाइम पर मेकफ़ाइल में अधिक विवरण जोड़ने के लिए किया जाता है। मेकफ़ाइल में एक वेरिएबल में कमांड-लाइन तर्कों को पास करने के लिए, आपको 'मेक' कीवर्ड का उपयोग करना चाहिए, जिसके बाद एक वेरिएबल नाम और एक तर्क मान दिया जाता है जो इसे पास किया जाता है:

बनाना name_of_variable = value_of_variable

इन मापदंडों को मेकफ़ाइल में सामान्य चर के रूप में एक्सेस किया जा सकता है, यानी 'नया' 'लक्ष्य' चर का तर्क मान है।

लक्ष्य = नया

उदाहरण: चर और तर्क बनाएं

मेकफ़ाइल में चर और तर्कों के उपयोग को प्रदर्शित करने के लिए, हम C++ में एक सरल उदाहरण का उपयोग करते हैं। हम नोटपैड++ में एक नई C++ फ़ाइल बनाते हैं और एक नमूना प्रोग्राम में इनपुट और आउटपुट का उपयोग करने के लिए एक 'iostream' हेडर जोड़ते हैं।

मुख्य() फ़ंक्शन एक वर्ण प्रकार चर 'v' की घोषणा के साथ शुरू होता है। मानक आउटपुट स्ट्रीम जो 'काउट' है, का उपयोग उपयोगकर्ता से इनपुट प्रदर्शित करने और पूछने के लिए किया जाता है। इसके विपरीत, 'cin' मानक इनपुट स्ट्रीम रनटाइम पर उपयोगकर्ता से इनपुट मान प्राप्त करता है और इसे 'v' वेरिएबल में सहेजता है। मानक 'काउट' का उपयोग फिर से रन-टाइम पर उपयोगकर्ता द्वारा जोड़े गए मान को प्रदर्शित करने के लिए किया जाता है। 'रिटर्न 0' कथन प्रोग्राम निष्पादन को सफलतापूर्वक समाप्त करता है।

#शामिल करें
मुख्य प्रवेश बिंदु ( ) {
चार वी;
std::cout << 'एक मान दर्ज करें:' ;
std::cin >> में;
std::cout << में << std::endl;
वापस करना 0 ;
}

एक मानक तरीके का उपयोग करके मेकफ़ाइल तैयार की जाती है। सबसे पहला वेरिएबल, 'CXX', कंपाइलर को C++ फ़ाइल, यानी 'g++' चलाने के लिए उपयोग किए जाने की घोषणा करता है। किसी भी समस्या से बचने के लिए कंपाइलर के लिए झंडे सेट करने के लिए अगले वेरिएबल का उपयोग किया जाता है।

अब, लक्ष्य फ़ाइल को 'लक्ष्य' चर का उपयोग करके 'नया' पर सेट किया गया है। यह एक निष्पादन योग्य फ़ाइल है। इसके बाद, मेकफ़ाइल SRCS और OBJS वेरिएबल्स के माध्यम से अपने स्रोत और ऑब्जेक्ट फ़ाइल को परिभाषित करता है। घोषित चर का उपयोग करने के लिए, हम लक्ष्य निष्पादन योग्य, ऑब्जेक्ट फ़ाइल बनाने और ऑब्जेक्ट और लक्ष्य फ़ाइल को साफ़ करने के लिए '()' ब्रेकर के बाद '$' चिह्न का उपयोग करते हैं।

सीएक्सएक्स = जी++
CXXFLAGS = -एसटीडी =सी++ ग्यारह -दीवार
लक्ष्य = नया
एसआरसीएस = मुख्य.सीपीपी
ओबीजेएस = $ ( एसआरसीएस:.सीपीपी=.ओ )
सभी: $ ( लक्ष्य )
$ ( लक्ष्य ) :$ ( ओबीजेएस )
$ ( सीएक्सएक्स ) $ ( CXXफ़्लैग ) -ओ $ ( लक्ष्य ) $ ( ओबीजेएस )
% .O: % सीपीपी
$ ( सीएक्सएक्स ) $ ( CXXफ़्लैग ) -सी $ < -ओ $ @
साफ:
आर एम -एफ $ ( लक्ष्य ) $ ( ओबीजेएस )

C++ और उसके मेकफ़ाइल को सहेजने के बाद, अपने सिस्टम का CMD लॉन्च करें, कार्यशील निर्देशिका में नेविगेट करें, और मेक निर्देश को निम्नानुसार चलाएँ। यह स्रोत कोड फ़ाइल के लिए 'main.o' ऑब्जेक्ट फ़ाइल और 'New.exe' लक्ष्य फ़ाइल उत्पन्न करता है। हमने अभी निर्देश बनाने के लिए कोई तर्क पारित नहीं किया है।

बनाना

लक्ष्य फ़ाइल चलाने से उपयोगकर्ता से इनपुट मांगा जाएगा। हम पहले निष्पादन में 'h' वर्ण और दूसरे निष्पादन में 'हाहा' जोड़ते हैं। जबकि 'v' वेरिएबल केवल 'वर्ण' मान स्वीकार करता है, 'हाहा' स्ट्रिंग से 'h' वर्ण संग्रहीत और प्रदर्शित होता है।

New.exe

आइए मेकफ़ाइल वेरिएबल्स को पास किए गए कमांड-लाइन तर्कों का उपयोग करके मेक निर्देश चलाएं। इसलिए, हम 'लक्ष्य' चर मान को बदलते हैं और उसमें 'परीक्षण' पास करते हैं। उसके बाद, 'Test.exe' फ़ाइल जेनरेट होती है और बिल्कुल 'New.exe' फ़ाइल की तरह काम करती है।

बनाना लक्ष्य =परीक्षण
Test.exe

निष्कर्ष

इस व्यापक मार्गदर्शिका में, हमने मेकफ़ाइल की सामग्री को एक-एक करके देखा है। हमने विस्तार से बताया कि मेकफ़ाइल में वेरिएबल्स को कैसे घोषित किया जाए, उन्हें कैसे प्रयोग करने योग्य बनाया जाए, और तर्कों की मदद से रनटाइम पर उनके मूल्य को कैसे बदला जाए। अपने स्पष्टीकरण का समर्थन करते हुए, हमने C++ में एक सरल उदाहरण पर चर्चा की।