लिनक्स वातावरण में प्रभावी सॉफ्टवेयर विकास के लिए '.a' फ़ाइल बनाने और चलाने का तरीका समझना महत्वपूर्ण है। यह Linux '.a' फ़ाइल को स्थापित करने और कॉन्फ़िगर करने का एक व्यापक तरीका है। आइए जानें कि Linux '.a' फ़ाइल क्या है, इसके उद्देश्य, संरचना और इसे कैसे बनाया और निष्पादित किया जा सकता है, इसका पता लगाएं।
Linux में '.a' फ़ाइल क्या है?
Linux '.a' फ़ाइल एक संग्रह फ़ाइल है जो संकलित कोड और डेटा के लिए एक कंटेनर के रूप में कार्य करती है। इसे आमतौर पर एक स्थिर लाइब्रेरी के रूप में जाना जाता है जिसमें ऐसे कोड होते हैं जो संकलन के समय कॉलिंग कोड से जुड़े होते हैं जो एप्लिकेशन का एक मूलभूत हिस्सा बन जाता है। ये Linux '.a' फ़ाइलें एप्लिकेशन में एक पूर्व-संकलित, मूलभूत योगदान प्रदान करती हैं, जो Linux '.so' डायनेमिक लाइब्रेरीज़ फ़ाइलों से पूरी तरह विपरीत होती हैं, जहां लिंकिंग रनटाइम पर होती है।
आइए एक ऐसे परिदृश्य की कल्पना करें जिसमें एक डेवलपर तीन अलग-अलग प्रोग्राम लागू करता है। यह जानते हुए कि इन प्रोग्रामों के बीच साझा कार्यक्षमता मौजूद है, प्रोग्रामर एक लाइब्रेरी बनाता है जो इन सामान्य सुविधाओं को समाहित करती है जिन्हें '.a' फ़ाइल के रूप में प्रस्तुत किया जाता है। इस बिंदु पर जानने वाली महत्वपूर्ण खबर यह है कि लिनक्स '.ए' फ़ाइलें कोड और डेटा का एक पुन: प्रयोज्य संग्रह बन जाती हैं जिसे अन्य डेवलपर्स अपनी परियोजनाओं में उपयोग कर सकते हैं।
पूर्वावश्यकताएँ:
लिनक्स में '.a' फ़ाइल बनाने और चलाने का तरीका जानने से पहले, कुछ बुनियादी बातें जानना महत्वपूर्ण है। कुछ पूर्वापेक्षाएँ हैं जिन्हें Linux में कोई फ़ंक्शन निष्पादित करने से पहले सुनिश्चित किया जाना चाहिए। वे इस प्रकार हैं:
- Ubuntu 20.04 या कोई नवीनतम संस्करण
- कमांड लाइन या टर्मिनल विंडो तक पहुंच
- विभिन्न फ़ाइलों और निर्देशिकाओं के लिए एक उपयोगकर्ता खाता, विशेष रूप से सुडो विशेषाधिकार
आप Linux '.a' फ़ाइल कैसे बनाते और चलाते हैं?
Linux '.a' फ़ाइल बनाने और चलाने में चरणों की एक श्रृंखला शामिल होती है: निर्माण, संकलन और निष्पादन। इन कार्यों को करने के लिए विभिन्न तरीकों का उपयोग किया जा सकता है, और हम उनमें से प्रत्येक का व्यक्तिगत रूप से पता लगाएंगे। हमें शुरू करने दें।
निम्नलिखित उदाहरण को चलाने और निष्पादित करने के लिए आपको एक GCC कंपाइलर की आवश्यकता है। लिनक्स '.a' फ़ाइल को बनाने और चलाने के लिए सभी कमांड को चलाने के लिए कंपाइलर का उपयोग किया जाता है:
निम्नलिखित चरण हैं जिन्हें विभिन्न आदेशों और तकनीकों के माध्यम से समझाया गया है।
चरण 1: एक सी स्रोत फ़ाइल संकलित करें
निम्न आदेश के साथ C स्रोत फ़ाइलों (.c) को ऑब्जेक्ट फ़ाइलों (.o) में संकलित करने के लिए GCC कंपाइलर का उपयोग करके C की एक स्रोत फ़ाइल बनाकर कार्य प्रारंभ करें:
$ जी.सी.सी -दीवार -सी * ।सी'-वॉल' ध्वज सभी चेतावनियों को सक्षम करता है और '-सी' ध्वज इस बिंदु पर जीसीसी को केवल संकलित करने के लिए कहता है, लिंक करने के लिए नहीं।
चरण 2: लाइब्रेरी आर्काइव बनाएं
अगला कदम लाइब्रेरी फ़ाइल बनाना है। 'ar' कमांड ऑब्जेक्ट फ़ाइलों से स्थिर लाइब्रेरी संग्रह (.a) बनाता है। इसलिए, हम निम्नलिखित कमांड का उपयोग करते हैं:
$ साथ -सीवीक्यू libfile.a * ओयह कमांड लिनक्स ऑपरेटिंग सिस्टम में 'ar' (संग्रह) कमांड का उपयोग करके '.o' एक्सटेंशन वाली विभिन्न ऑब्जेक्ट फ़ाइलों को मिलाकर 'libfile.a' नामक एक स्थिर संग्रह फ़ाइल बनाता है। इस आदेश में ध्यान देने योग्य तीन बातें हैं: 'सी', 'वी', और 'क्यू'। आइए घटकों को तोड़ें और इस आदेश के संदर्भ में प्रत्येक ध्वज और तर्क के उद्देश्य को समझें:
ar: यह लिनक्स सिस्टम में आर्काइव कमांड निष्पादित करता है। 'ar' कमांड का मूल कार्य अभिलेखीय बनाना, संशोधित करना और निकालना है।
-सी: यह ध्वज एक नया संग्रह बनाने का निर्देश देता है यदि यह पहले से नहीं बनाया गया है या अभी तक मौजूद नहीं है। यदि दिए गए नाम के साथ एक संग्रह फ़ाइल मौजूद है, तो '-सी' ध्वज यह सुनिश्चित करता है कि इसे किसी भी पिछली सामग्री को प्रतिस्थापित करके फिर से बनाया गया है।
-v: वर्बोज़ ध्वज संग्रह प्रक्रिया के बारे में विस्तृत जानकारी प्रदर्शित करता है। यह एक फीडबैक प्रदान करता है कि कौन सी फ़ाइलें संग्रह में जोड़ी जा रही हैं।
-q: 'q' का अर्थ 'जल्दी जोड़ें' है। यह 'एआर' ध्वज को डुप्लिकेट प्रतीकों या समय लेने वाली परिचालनों की जांच किए बिना निर्दिष्ट फ़ाइलों को तुरंत संग्रह में जोड़ने के लिए कहता है।
libfile.a: फ़ाइल का नाम उस कमांड के लिए आवश्यक है जिसे बनाया या संशोधित किया जाएगा। यहां, हम '.a' एक्सटेंशन के साथ एक फ़ाइल नाम 'libfile' देते हैं जो इंगित करता है कि यह एक स्थिर लाइब्रेरी संग्रह फ़ाइल है।
*.o: कमांड के अंत में '*' चयनित निर्देशिका में प्रत्येक फ़ाइल को '.o' एक्सटेंशन के साथ दर्शाता है जो ऑब्जेक्ट फ़ाइलों को संदर्भित करता है। ऑब्जेक्ट फ़ाइलें स्रोत कोड संकलन के परिणाम हैं और इसमें एक मशीन कोड होता है जो अभी तक किसी भी अंतिम निष्पादन योग्य से जुड़ा नहीं है।
चरण 3: लाइब्रेरी सामग्री देखना
अब जब हमने लाइब्रेरी संग्रह बना लिया है, तो हम इसे 'ar -t' कमांड का उपयोग करके देख सकते हैं। 'ar -t' कमांड लाइब्रेरी में मौजूद सभी सामग्रियों को सूचीबद्ध करता है।
$ साथ -टी libfile.a'ar -t libfile.a' कमांड उन सभी ऑब्जेक्ट फ़ाइलों को सूचीबद्ध करता है जो लिनक्स ऑपरेटिंग सिस्टम में 'ar' कमांड का उपयोग करके 'libfile.a' नामक स्थिर लाइब्रेरी संग्रह फ़ाइल में शामिल हैं। आइए प्रत्येक ध्वज और उनकी कार्यक्षमता का विश्लेषण करें:
एआर: जैसा कि पहले बताया गया है, यह लिनक्स सिस्टम में आर्काइव कमांड है।
-t: '-t' ध्वज का उपयोग संग्रह की सामग्री तालिका को प्रदर्शित करने के लिए किया जाता है, जो 'libfile.a' के भीतर संग्रहीत ऑब्जेक्ट फ़ाइलों के नाम प्रदर्शित करता है।
libfile.a: डेटा को पढ़ने के लिए, हमें संग्रह फ़ाइल का नाम जानना होगा।
चरण 4: किसी अन्य प्रोग्राम में लाइब्रेरी का उपयोग करना
आइए अब देखें कि एक अलग प्रोग्राम में नव विकसित लिनक्स '.a' फ़ाइल का उपयोग कैसे करें। चूँकि हमने एक लाइब्रेरी बनाई है, अब इसे केवल कंपाइल कमांड में लाइब्रेरी जोड़कर कहीं भी और किसी भी प्रोग्राम में उपयोग किया जा सकता है। हम इसे अगले कमांड की मदद से पूरा कर सकते हैं। इसमें लाइब्रेरी के सभी आवश्यक हेडर और लिंक शामिल हैं।
$ जी.सी.सी -ओ MyProgramMain.c -एल पथ / को / लिब है -एलफ़ाइलइस कमांड में, '-L' लाइब्रेरी पथ को निर्दिष्ट करता है, '-lfile' 'library.a' libfile के विरुद्ध लिंक करता है, 'lib' उपसर्ग और '.a' प्रत्यय को हटाता है।
चरण 5: एक '.a' Linux फ़ाइल चलाएँ
अंत में, हम '.a' फ़ाइल चला सकते हैं। आपके टर्मिनल में निम्नलिखित स्क्रिप्ट चलाने पर परिणाम आपको तुरंत प्रदर्शित होता है:
$ . / मेराप्रोग्राममेनयह कमांड स्रोत फ़ाइलों और लिंक की गई स्टेटिक लाइब्रेरी दोनों में प्रदान की गई कार्यक्षमताओं का उपयोग करके फ़ाइल को निष्पादित करता है।
निष्कर्ष
लिनक्स में '.a' फ़ाइल बनाने और चलाने के लिए विभिन्न कमांडों को संकलित करने की आवश्यकता होती है जो फ़ाइल निर्माण, संकलन और लिंकिंग करते हैं। इन चरणों और प्रत्येक कमांड की कार्यशील कार्यप्रणाली को समझने से डेवलपर्स को अपने कोड को व्यवस्थित करने, बाहरी पुस्तकालयों का उपयोग करने और स्केलेबल प्रोग्राम विकसित करने में मदद मिलती है। चाहे आपको नैनो और जीसीसी जैसे बुनियादी कमांड का उपयोग करने की आवश्यकता हो या आप स्थिर पुस्तकालयों के साथ अधिक उन्नत तकनीकों के साथ काम करने वाले हों, इन कौशलों में महारत हासिल करने से व्यावहारिक लिनक्स आधारित विकास में मदद मिलती है।