प्रौद्योगिकी साझेदारी

लिङ्करः कथं कार्यं करोति, स्थिरलिङ्किङ्गस्य गतिशीललिङ्किङ्गस्य च मध्ये अन्तरं, गतिशीललिङ्कपुस्तकालयानां निर्माणं उपयोगः च कथं भवति इति

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

प्रोग्रामविकासे लिङ्करः महत्त्वपूर्णां भूमिकां निर्वहति । लिङ्करः कथं कार्यं करोति, स्थिरलिङ्किंग् तथा डायनामिकलिङ्किङ्ग् इत्येतयोः मध्ये अन्तरं, गतिशीललिङ्क् पुस्तकालयाः कथं निर्मातव्याः, कथं च उपयोक्तव्याः इति विषये गोतां कर्तुं पूर्वं प्रथमं लिङ्करस्य मूलभूतकार्यस्य रूपरेखां कुर्मः

लिङ्करः कथं कार्यं करोति

लिङ्करः एकं वा अधिकं वा वस्तुसञ्चिकां पुस्तकालयसञ्चिकां च कार्यान्वयनीयसञ्चिकायां संयोजयितुं उत्तरदायी साधनम् अस्ति । अस्य मुख्यकार्यं भवति- १.

  1. प्रतीकविश्लेषणम् : कार्यक्रमे सर्वाणि चिह्नानि (फंक्शन्-चर-नामानि) चिनोतु, संसाधयन्तु च, प्रत्येकस्य चिह्नस्य अद्वितीयपरिभाषा भवति इति सुनिश्चितं कुर्वन्तु । सन्दर्भितानां किन्तु परिभाषितानां (बाह्यचिह्नानां) चिह्नानां कृते, लिङ्करः प्रदत्तपुस्तकालये अन्येषु वस्तुसञ्चिकायां वा परिभाषां अन्वेषयति ।

  2. पुनः सेट् कुर्वन्तु : प्रत्येकस्मिन् मॉड्यूल् मध्ये कोड्, डाटा एड्रेस् च अन्तिमस्मृति-सङ्केते समायोजयन्तु । स्थानान्तरणं सङ्केते पतासुधारं तथा च दत्तांशखण्डस्य स्थितिसमायोजनं समावेशयति यत् सर्वे सन्दर्भाः सम्यक् स्मृतिस्थानं सूचयन्ति इति सुनिश्चितं भवति ।

  3. खण्डान् विलीनयन्ति: भिन्न-भिन्न-लक्ष्य-सञ्चिकाभ्यः समानप्रकारस्य खण्डान् (यथा कोड-खण्डाः, आँकडा-खण्डाः इत्यादयः) एकस्मिन् निरन्तर-खण्डे विलीनयन्तु ।

  4. प्रसंस्करण पुस्तकालय : प्रोग्राम् द्वारा आवश्यकं पुस्तकालयसङ्केतं वस्तुसञ्चिकायाः ​​सह लिङ्क् कुर्वन्तु । लिङ्करः द्वौ प्रकारौ पुस्तकालयं सम्भालितुं शक्नोति : स्थिरपुस्तकालयाः गतिशीलपुस्तकालयाः च ।

  5. कार्यान्वयनीयसञ्चिकां जनयन्तु: अन्तिमनिर्गमः एकः कार्यान्वयनीयः सञ्चिका अस्ति या प्रचालनतन्त्रे चालयितुं शक्यते ।

स्थिरलिङ्किङ्गस्य गतिशीललिङ्किङ्गस्य च भेदः

स्थिर लिंकिंग तथागतिशील लिङ्किंग ते लिङ्करस्य कार्यविधौ द्वौ स्तः, प्रत्येकस्य भिन्नलक्षणं उपयोगपरिदृश्यं च भवति ।

स्थिरलिङ्कः
  • कल्पना : स्थिरलिङ्किङ्ग् इत्यस्मिन् पुस्तकालयसङ्केतः संकलनसमये प्रतिलिपितः भवति, तस्य उपयोगं कुर्वतः प्रत्येकस्मिन् एक्जीक्यूटिवे एम्बेड् भवति । एवं प्रकारेण, उत्पन्ने कार्यान्वयनीयसञ्चिकायां सर्वे आवश्यकाः कोडाः सन्ति, बाह्यपुस्तकालयसञ्चिकासु न अवलम्बन्ते ।

  • लाभ

    • दृढं स्वातन्त्र्यं : उत्पन्ने कार्यान्वयनीयसञ्चिकायां सर्वाणि निर्भरतानि सन्ति तथा च रनटाइम् इत्यत्र अतिरिक्तपुस्तकालयसञ्चिकानां आवश्यकता नास्ति ।
    • उत्तमसङ्गतिः: रनटाइम् प्रणाल्यां संस्थापिते पुस्तकालयसंस्करणस्य उपरि न निर्भरं भवति, तथा च "पुस्तकालयसंस्करणविग्रहस्य" समस्यां न प्राप्स्यति ।
  • अभावः

    • बृहत् सञ्चिकायाः ​​आकारः : प्रत्येकस्मिन् कार्यान्वयनीयसञ्चिकायां सम्पूर्णः पुस्तकालयसङ्केतः भवति, यस्य परिणामेण सञ्चिकायाः ​​आकारः वर्धते ।
    • अद्यतन-समस्या: यदि पुस्तकालयः अद्यतनः अस्ति तर्हि पुस्तकालयस्य उपयोगं कुर्वन्तः सर्वे कार्यक्रमाः पुनः संकलितुं आवश्यकाः सन्ति ।
  • स्थिर पुस्तकालय विस्तार

    • विण्डोज : १. .lib
    • यूनिक्स/लिनक्स: १. .a
गतिशील कडि
  • कल्पना : डायनामिक लिङ्किङ्ग् इत्यस्मिन् पुस्तकालयसङ्केतः रनटाइम् इत्यत्र लोड् भवति तथा च एक्जीक्यूटिव् सञ्चिकायां एम्बेड् न भवति । कार्यान्वयनीयमध्ये केवलं पुस्तकालयानाम् सन्दर्भाः सन्ति, तथा च पुस्तकालयसङ्केतः रनटाइम् इत्यत्र प्रचालनतन्त्रेण लोड् भवति ।

  • लाभ

    • लघु सञ्चिकायाः ​​आकारः : कार्यान्वयनीयसञ्चिकायां पुस्तकालयसङ्केतः नास्ति, केवलं पुस्तकालयस्य सन्दर्भाः सन्ति ।
    • अद्यतनीकरणाय सुलभम् : पुस्तकालयानाम् अद्यतनीकरणाय कार्यक्रमस्य पुनः संकलनस्य आवश्यकता नास्ति, केवलं पुस्तकालयसञ्चिकानां स्थाने अन्यं स्थापनम् ।
    • उच्चस्मृतिदक्षता : अनेकाः कार्यक्रमाः एकस्यामेव पुस्तकालयसञ्चिकायाः ​​स्मृतिदृष्टान्तान् साझां कर्तुं शक्नुवन्ति, येन स्मृतिप्रयोगः न्यूनीकरोति ।
  • अभावः

    • दृढनिर्भरता: कार्यान्वयनीयसञ्चिकां चालितस्य पुस्तकालयसञ्चिकायाः ​​सम्यक् संस्करणं अन्वेष्टुं लोड् कर्तुं च समर्था भवितुमर्हति ।
    • संगततासमस्याः: पुस्तकालयसञ्चिकासंस्करणविसंगतिः कार्यक्रमस्य विफलतां जनयितुं शक्नोति ।
  • गतिशील पुस्तकालय विस्तार

    • विण्डोज : १. .dll(गतिशील-लिङ्क पुस्तकालय) .
    • यूनिक्स/लिनक्स: १. .so(साझा वस्तु) .

गतिशीललिङ्कपुस्तकालयानां निर्माणं उपयोगं च कुर्वन्तु

गतिशीललिङ्कपुस्तकालयं रचयन्तु

विभिन्नेषु प्रचालनतन्त्रेषु गतिशीललिङ्कपुस्तकालयस्य निर्माणस्य पद्धतयः किञ्चित् भिन्नाः सन्ति । अत्र केचन सामान्याः सोपानाः आदेशाः च सन्ति ।

Linux इत्यत्र गतिशीलं लिङ्क् पुस्तकालयं रचयन्तु
  1. पुस्तकालयस्य कोडं लिखन्तु

    वयं गतिशीलपुस्तकालये स्थापयितुम् इच्छामः इति कार्याणि समाविष्टं C स्रोतसञ्चिकां रचयन्तु ।

    // example.cpp
    #include