c libraries how install
यह C ++ लाइब्रेरीज़ ट्यूटोरियल बताएगा कि C ++ में लाइब्रेरीज़ क्या हैं, C ++ स्टैंडर्ड लाइब्रेरी की स्थापना और उपयोग के साथ उनके प्रकार:
लाइब्रेरी को कोड या फ़ंक्शंस के पैकेज के रूप में परिभाषित किया जा सकता है जो पुन: प्रयोज्य है। विभिन्न अनुप्रयोग एक ही पुस्तकालय का बार-बार उपयोग कर सकते हैं। पुस्तकालय होने से, हम पुन: प्रयोज्य प्राप्त करते हैं अर्थात् ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के सिद्धांतों में से एक।
उदाहरण के लिए, गणितीय कार्य जैसे पाप, कॉस, टैन, एब्स आदि को लाइब्रेरी में बनाया जा सकता है। ऐसा करने से हमें हर एप्लिकेशन के लिए इन कार्यों को बार-बार लिखना नहीं पड़ता है। हम सिर्फ पुस्तकालय का संदर्भ ले सकते हैं और हमारे अनुप्रयोगों में कोड का पुन: उपयोग कर सकते हैं।
=> स्क्रैच से C ++ जानने के लिए यहाँ जाएँ।
आप क्या सीखेंगे:
C ++ लाइब्रेरीज़
C ++ लाइब्रेरी में आमतौर पर निम्न शामिल होते हैं:
एक हेडर फ़ाइल: यह उस कार्यक्षमता को परिभाषित करता है जो पुस्तकालय की पेशकश कर रहा है।
एक पूर्वनिर्मित बाइनरी: इस फ़ाइल में कार्यक्षमता का वास्तविक कार्यान्वयन है। यह कार्यान्वयन मशीन की भाषा में किया जाता है।
पुस्तकालयों को पूर्वनिर्मित किया जाता है क्योंकि पुस्तकालयों को फिर से स्थापित करने का कोई कारण नहीं है क्योंकि वे शायद ही बदलते हैं। दूसरे, जैसा कि पहले से तय किए गए पुस्तकालय एक मशीन भाषा के रूप में हैं, उन्हें सुरक्षित किया जाता है क्योंकि कोई भी उन्हें सीधे एक्सेस नहीं कर सकता है। इस प्रकार पुस्तकालय सुरक्षित हैं।
C ++ में हमारे पास दो प्रकार के पुस्तकालय हैं:
- स्थैतिक पुस्तकालय
- गतिशील पुस्तकालय
स्थैतिक पुस्तकालय
स्थैतिक पुस्तकालयों को अभिलेखागार भी कहा जाता है। एक स्थिर पुस्तकालय एक पुस्तकालय है जो निष्पादन योग्य का एक हिस्सा बन जाता है जो इसे संदर्भित करता है। इस प्रकार जब हम एक अनुप्रयोग विकसित करते हैं और उसमें एक स्थैतिक पुस्तकालय का संदर्भ देते हैं, तो स्थैतिक पुस्तकालय की सामग्री को अनुप्रयोग में बदल दिया जाता है।
विंडोज पर स्थिर लाइब्रेरियों में आमतौर पर '.लिब' का विस्तार होता है जबकि लिनक्स पर उन लोगों का एक्सटेंशन '.a' (या संग्रह) होता है।
आवश्यकता के एकत्रीकरण के लिए व्यवसाय विश्लेषक द्वारा प्रयुक्त उपकरण
एक कार्यक्रम संदर्भ स्थैतिक पुस्तकालय होने का एक फायदा यह है कि हमें स्थिर पुस्तकालय को निष्पादन योग्य के साथ वितरित नहीं करना पड़ता है। ऐसा इसलिए है क्योंकि स्थैतिक पुस्तकालय की सामग्री अनुप्रयोगों का एक हिस्सा है और इसे अलग से देने की आवश्यकता नहीं है।
इस विशिष्ट लाभ के परिणामस्वरूप नुकसान होता है क्योंकि निष्पादन योग्य भारी हो सकता है और बहुत अधिक स्थान बर्बाद हो जाता है क्योंकि पुस्तकालय निष्पादन योग्य का एक हिस्सा है।
स्टैटिक लाइब्रेरी होने का एक और नुकसान यह है कि यदि स्टैटिक लाइब्रेरी में परिवर्तन होता है, तो निष्पादन योग्य संदर्भ को भी अपडेट करने की आवश्यकता होती है।
गतिशील पुस्तकालय
गतिशील पुस्तकालय को 'साझा पुस्तकालय' के रूप में भी जाना जाता है। विंडोज में, डायनेमिक लाइब्रेरी में एक्सटेंशन '.dll' (डायनेमिकली लिंक्ड लाइब्रेरी) होता है। लिनक्स पर, गतिशील पुस्तकालय में '.so' (साझा वस्तु) का विस्तार होता है।
डायनेमिक लाइब्रेरी एक लाइब्रेरी होती है जिसमें रूटीन होते हैं जो रन टाइम पर एप्लिकेशन में लोड होते हैं। जब कोई एप्लिकेशन डायनेमिक लाइब्रेरी का संदर्भ देता है, तो लाइब्रेरी एप्लिकेशन का हिस्सा नहीं बनती है, लेकिन यह एक अलग इकाई के रूप में बनी रहती है।
डायनेमिक लाइब्रेरी का एक फायदा है कि लाइब्रेरी की एक कॉपी को कई एप्लिकेशन द्वारा साझा किया जा सकता है जिससे अंतरिक्ष की बचत होती है। फिर भी एक और लाभ यह है कि, जैसा कि डायनामिक लाइब्रेरी एक अलग इकाई है, गतिशील लाइब्रेरी में परिवर्तन होने पर एप्लिकेशन निष्पादन योग्य नहीं बदलता है।
डायनेमिक लाइब्रेरी का एकमात्र नुकसान यह है कि लाइब्रेरी को लोड और संदर्भ देने के लिए एक अलग कार्यक्रम की आवश्यकता होती है जो बोझिल हो सकती है। इस समस्या को हल करने के लिए, हम 'आयात पुस्तकालय' दिनचर्या का उपयोग करते हैं।
एक आयात पुस्तकालय एक ऐसा तंत्र है जो प्रोग्राम में स्वचालित रूप से एक गतिशील पुस्तकालय को लोड और उपयोग करता है। विंडोज पर, इंपोर्ट लाइब्रेरी एक छोटी स्टैटिक लाइब्रेरी (.lib) रखता है, जिसका नाम .dll फ़ाइल के समान होता है और इसे कंपाइल टाइम पर प्रोग्राम से जोड़ा जाता है।
एक बार जब यह किया जाता है, तो गतिशील पुस्तकालय का उपयोग किया जाता है जैसे कि यह एक स्थिर पुस्तकालय था। लिनक्स ऑपरेटिंग सिस्टम पर, डायनेमिक लाइब्रेरी या शेयर्ड ऑब्जेक्ट (.so) फाइल इंपोर्ट लाइब्रेरी के साथ-साथ डायनेमिक लाइब्रेरी की तरह काम करती है। लिनक्स ओएस पर ज्यादातर लिंकर्स डायनेमिक लाइब्रेरी के लिए इंपोर्ट लाइब्रेरी बनाने में सक्षम हैं।
कैसे स्थापित करें और C ++ पुस्तकालयों का उपयोग करें
आइए कुछ चरणों को देखें, जिन्हें हमें इन पुस्तकालयों को स्थापित करने और अपने आवेदन में उपयोग करने की आवश्यकता है।
(1) पुस्तकालय का अधिग्रहण
अपने आवेदन में पुस्तकालय का उपयोग करने के लिए, हमें सबसे पहले पुस्तकालय का अधिग्रहण करना होगा। पुस्तकालय पहले से तैयार किया जा सकता है - ऐसे मामले में हमें बस ऑपरेटिंग सिस्टम के लिए पुस्तकालय डाउनलोड करने की आवश्यकता है। यदि पुस्तकालय पूर्व निर्धारित नहीं है, तो हमें स्रोत कोड डाउनलोड करने और इसे हमारे मशीन पर संकलित करने की आवश्यकता है।
विंडोज़ पर, पुस्तकालयों में आमतौर पर .zip एक्सटेंशन होता है जबकि लिनक्स ऑपरेटिंग सिस्टम पर लाइब्रेरी पैकेज को '.RPM' के रूप में वितरित किया जाता है।
# 2) लाइब्रेरी स्थापित करें
पुस्तकालय प्राप्त करने के बाद अगला कदम पुस्तकालय स्थापित करना है। विंडोज़ पर इंस्टॉलेशन एक फ़ोल्डर में लाइब्रेरी की सामग्री को खोलना जितना आसान है। लिनक्स पर, हम लाइब्रेरी स्थापित करने के लिए पैकेज मैनेजर को आमंत्रित कर सकते हैं।
# 3) कंपाइलर के लिए लाइब्रेरी पथ शामिल करें
हमें पुस्तकालय का मार्ग निर्धारित करने की आवश्यकता है ताकि संकलक को पता चले कि पुस्तकालय की फाइलों को कहां देखना है। यह लिनक्स पर 'शामिल निर्देशिका' या लिनक्स पर '/ usr / शामिल' हो सकता है।
# 4) लाइब्रेरी पथ लिंक करें
यह चरण इसलिए किया जाता है ताकि लिंकर को पुस्तकालयों के सटीक मार्ग का पता चल जाए जिसे लिंक करने की प्रक्रिया के दौरान लिंक करना है। आमतौर पर विंडोज पर, / lib 'फोल्डर या लिनक्स पर us / usr / lib' फोल्डर होता है जिसमें सभी लाइब्रेरी होती हैं।
एक बार लाइब्रेरी स्थापित हो जाने के बाद, कंपाइलर और लिंकर को लाइब्रेरी के उपयोग का रास्ता पता चल जाता है, और लाइब्रेरी उपयोग के लिए तैयार हो जाती है। हमारे कार्यक्रम में, हम लाइब्रेरी कार्यक्षमता को संदर्भित कर सकते हैं, और जैसा कि हमने अपने प्रोग्राम में हेडर फ़ाइलों को शामिल किया है, कंपाइलर कार्यक्षमता को संकलित करने में सक्षम होगा।
जैसा कि प्रोग्रामर ज्यादातर विकास के लिए आईडीई का उपयोग करते हैं, हम आईडीई में ही पुस्तकालय पथ निर्दिष्ट करते हैं।
सी ++ में मानक हेडर / लाइब्रेरी
आइए C ++ भाषा का उपयोग करने वाले कुछ मानक हेडर या लाइब्रेरी पर चर्चा करें। हमने अपने C ++ ट्यूटोरियल्स में पहले ही इन हेडर्स के बारे में अपने-अपने विषयों पर चर्चा की है।
C मानक पुस्तकालय
ANSI C मानक निर्दिष्ट करता है C मानक पुस्तकालय या परिवाद जो C प्रोग्रामिंग भाषा के लिए मानक पुस्तकालय के रूप में कार्य करता है। C ++ में शुरुआत में at c ’जोड़कर और अंत में end .h’ निकालकर एक अलग नाम के तहत C मानक लाइब्रेरी से प्रत्येक हेडर शामिल हैं। इस प्रकार हेडर xxx.h C में C ++ मानक में 'cxxx' बन जाएगा।
सी मानक पुस्तकालय मैक्रोज़, स्ट्रिंग हैंडलिंग, गणितीय संगणना प्रकार परिभाषाएँ, इनपुट / आउटपुट प्रसंस्करण, मेमोरी प्रबंधन, आदि से संबंधित कार्यक्षमता प्रदान करता है।
जाँच यहां सी स्टैंडर्ड लाइब्रेरी के बारे में अधिक जानकारी के लिए।
आम
सामान्य सी ++ लाइब्रेरी में निम्न हेडर शामिल हैं जैसा कि नीचे दिखाया गया है।
हैडर का नाम | विवरण |
---|---|
टपल के लिए कार्यक्षमता को परिभाषित करता है। C ++ 11 के बाद से उपलब्ध है। | |
कई कंटेनरों द्वारा उपयोग किए जाने वाले एल्गोरिदम को इस हेडर में परिभाषित किया गया है। | |
इसमें std :: chrono :: time_point, std :: chrono :: अवधि और घड़ियों जैसे समय तत्व शामिल हैं। | |
यह हेडर फ़ंक्शंस ऑब्जेक्ट को सामान्य एल्गोरिदम के साथ उपयोग करने के लिए प्रदान करता है। | |
इसमें पुनरावृत्तियों के लिए कक्षाएं और टेम्पलेट शामिल हैं। | |
C ++ में मेमोरी प्रबंधन कार्यक्षमता को परिभाषित करता है। | |
मानक अपवाद वर्गों को परिभाषित करता है, जिसमें std :: logic_error और std :: runtime_error, दोनों std :: अपवाद से लिया गया है। | |
टेम्पलेट वर्ग जैसे std :: pair आदि या नाम स्थान जैसे std :: rel_ops इस शीर्षक में परिभाषित किए गए हैं। |
स्ट्रीम और इनपुट / आउटपुट
हैडर का नाम | विवरण |
---|---|
टेम्पलेट क्लास एसटीडी की कार्यक्षमता में शामिल हैं :: आउटपुट के लिए शुतुरमुर्ग और अन्य सहायक कक्षाएं। | |
फ़ाइल आधारित इनपुट-आउटपुट के लिए कार्यक्षमता प्रदान करता है। | |
आउटपुट स्वरूपण के लिए कार्यक्षमता शामिल है जैसे सटीक, आधार आदि। | |
आईस्ट्रीम संचालन के लिए बुनियादी कार्यक्षमता शामिल है। | |
कई I / O- संबंधित वर्ग टेम्प्लेट की घोषणाएँ प्रदान करता है। | |
C ++ इनपुट और आउटपुट फंडामेंटल प्रदान करता है। | |
टेम्प्लेट क्लास std :: istream और इनपुट के लिए अन्य सहायक वर्गों की कार्यक्षमता समाहित करता है। | |
टेम्पलेट वर्ग एसटीडी को परिभाषित करता है :: स्ट्रिंग हेरफेर और स्ट्रिंग हेरफेर के लिए उपयोग किए जाने वाले अन्य सहायक वर्ग। | |
कुछ प्रकार के चरित्र अनुक्रमों से / जैसे कि बाहरी फ़ाइलों या तारों को पढ़ने / लिखने के लिए कार्यक्षमता शामिल है। |
भाषा समर्थन
नाम- of-the-Header | विवरण |
---|---|
एसटीडी :: कतार, एकल-समाप्त कतार, और एसटीडी :: प्रायोरिटी_क्यू, एक प्राथमिकता कतार के लिए कार्यक्षमता को लागू करता है। | |
इस शीर्ष लेख में अपवाद हैंडलिंग के लिए विभिन्न प्रकार और फ़ंक्शन शामिल हैं, सभी अपवादों के लिए आधार वर्ग सहित, std :: अपवाद। | |
इस हेडर में टेम्प्लेट क्लास स्टैड :: न्यूमेरिक_लिमिट्स का उपयोग मौलिक न्यूमेरिक गुणों का वर्णन करने के लिए किया गया है | |
संचालकों को नया और हटाएं और C ++ मेमोरी प्रबंधन के मूल सिद्धांतों से संबंधित अन्य कार्य शामिल हैं। | |
C ++ रन-टाइम प्रकार की जानकारी के साथ काम करने के लिए सुविधाएं प्रदान करता है। |
स्ट्रिंग्स
हैडर का नाम | विवरण |
---|---|
इस शीर्ष लेख में C ++ में मानक स्ट्रिंग कक्षाएं और टेम्पलेट शामिल हैं। | |
यह C ++ 11 में नया है। नियमित अभिव्यक्ति का उपयोग करते हुए पैटर्न मिलान तार के लिए उपयोगिताओं प्रदान करता है। |
स्थानीयकरण
नाम- of-the-Header | विवरण |
---|---|
इस शीर्ष लेख में स्थानिक कार्यक्षमता है। यह कक्षाओं को परिभाषित करता है और उन कार्यों को घोषित करता है जो किसी स्थान विशेष के लिए सूचना को संलग्न और हेरफेर करते हैं। | |
विभिन्न चरित्र एन्कोडिंग के लिए कोड रूपांतरण पहलू समाहित करता है। |
कंटेनरों
नाम- of-the-Header | विवरण |
---|---|
Std :: सरणी के लिए कार्यक्षमता, एक निश्चित आकार के सरणी के लिए एक कंटेनर। C ++ 11 और TR1 में नया जोड़। | |
विशिष्ट कंटेनर वर्ग एसटीडी :: बिटसेट, एक बिट सरणी। | |
Std :: deque के लिए कार्यक्षमता सम्मिलित करता है, एक दोतरफा कतार। | |
एसटीडी के लिए हेडर :: फॉरवर्ड_लिस्ट, एक एकल लिंक की गई सूची। C ++ 11 और TR1 में नया जोड़। | |
Std :: सूची के लिए कार्यक्षमता, एक डबल लिंक की गई सूची है। | |
एसटीडी :: मानचित्र और एसटीडी :: मल्टीमैप, सॉर्ट किए गए साहचर्य सरणी और मल्टीमैप के लिए कार्यक्षमता शामिल है। | |
हैडर के लिए हेडर :: सेट और एसटीडी :: मल्टीसेट, सॉर्टेड एसोसिएटिव कंटेनर या सेट। | |
कंटेनर एडेप्टर वर्ग एसटीडी :: स्टैक, एक स्टैक प्रदान करता है। | |
इस शीर्ष लेख में std :: unordered_map और std :: unordered_multimap, हैश टेबल कार्यक्षमता है। C ++ 11 और TR1 में नया। | |
Std :: unordered_set और std :: unordered_multiset के लिए कार्यक्षमता प्रदान करता है। C ++ 11 और TR1 में नया। | |
एसटीडी :: वेक्टर, एक गतिशील सरणी के लिए कार्यक्षमता प्रदान करता है। |
थ्रेड सपोर्ट लाइब्रेरी
हैडर का नाम | विवरण |
---|---|
C ++ 11 के बाद से थ्रेड के साथ काम करने के लिए एक नया वर्ग और नाम स्थान। | |
C ++ 11 के बाद नया जोड़। यह म्यूटेक्स, लॉक, एक बार कॉल, आदि प्रदान करता है जो कि पारस्परिक बहिष्कार के लिए सभी तंत्र हैं। | |
किसी चर को ब्लॉक करने के लिए उपयोग किए जाने वाले सिंक्रोनाइज़ेशन प्राइमेटिव्स प्रदान करने वाले कंडीशन वैरिएबल के लिए कार्यक्षमता होती है, जब तक कि कुछ शर्त पूरी नहीं हो जाती या किसी सिस्टम समय तक पहुंचने तक अधिसूचित नहीं होती। C ++ 11 के बाद के लिए नया जोड़। | |
इस शीर्षलेख में ऐसे घटक होते हैं जो C ++ प्रोग्राम को एक थ्रेड या किसी अन्य थ्रेड में चलाए गए फ़ंक्शन से एक थ्रेड और परिणाम (मान या अपवाद) को प्राप्त करने के लिए उपयोग कर सकते हैं। |
न्यूमेरिक लाइब्रेरी
हैडर का नाम | विवरण |
---|---|
हेडर जटिल संख्याओं का प्रतिनिधित्व और हेरफेर करने के लिए विभिन्न कार्यों का वर्णन करता है। इसमें जटिल संख्याओं के लिए एक वर्ग टेम्पलेट भी है | |
यादृच्छिक संख्या उत्पन्न करने के लिए कार्यशीलता (छद्म) | |
इस हेडर में शामिल है - पांच श्रेणी के टेम्प्लेट (वैलेरे, स्लाइस_अरे, gslice_array, mask_array, और indirect_array), - दो वर्गों (टुकड़ा और gslice), - मूल्यों की सरणियों का प्रतिनिधित्व और हेरफेर करने के लिए संबंधित फ़ंक्शन टेम्पलेट्स की एक श्रृंखला। | |
सामान्य संख्यात्मक ऑपरेशन होते हैं। |
निष्कर्ष
हमने सी ++ पुस्तकालयों के साथ उनके प्रकारों के बारे में विस्तार से चर्चा की, और लाइब्रेरी को स्थापित करने और सेटअप करने के लिए कदम उठाए।
हमें पता चला है कि मानक C ++ लाइब्रेरी में विभिन्न हेडर हैं जो विभिन्न कार्यात्मकता प्रदान करते हैं। C ++ में विभिन्न प्रकार के अनुप्रयोगों को विकसित करने के लिए हम इन मानक लाइब्रेरी हेडर का उपयोग कर सकते हैं।
=> यहां सभी C ++ ट्यूटोरियल की जांच करें।
अनुशंसित पाठ
- पुस्तकालय कार्य C ++ में
- मानक टेम्पलेट लाइब्रेरी (एसटीएल): एक संक्षिप्त परिचय
- C ++ का पूर्ण अवलोकन
- मुफ़्त के लिए C ++ प्रोग्रामिंग सीखने के लिए 70+ BEST C ++ ट्यूटोरियल
- स्वरूपण I / O: C ++ में प्रिंटफ, स्प्रिंटफ, स्कैनफ फंक्शंस
- C ++ में बेसिक इनपुट / आउटपुट ऑपरेशंस
- स्ट्रिंग फ़ंक्शंस C ++ में: getline, substring, string length & More