c libraries how install
Denna C ++ bibliotek handledning förklarar vad som är bibliotek i C ++, deras typer tillsammans med installation och användning av ett C ++ standardbibliotek:
Ett bibliotek kan definieras som ett paket med kod eller funktioner som kan återanvändas. Olika applikationer kan använda samma bibliotek om och om igen. Genom att ha bibliotek uppnår vi återanvändbarhet, dvs. en av principerna för objektorienterad programmering.
Till exempel, matematiska funktioner som sin, cos, tan, abs, etc. kan göras till ett bibliotek. Genom att göra detta behöver vi inte skriva dessa funktioner om och om igen för varje applikation. Vi kan bara referera till biblioteket och återanvända koden i våra applikationer.
=> Besök här för att lära dig C ++ från Scratch.
Vad du kommer att lära dig:
C ++ bibliotek
Ett C ++ - bibliotek består vanligtvis av:
En rubrikfil: Detta definierar den funktionalitet som biblioteket erbjuder.
En förkompilerad binär: Den här filen innehåller den faktiska implementeringen av funktionaliteten. Denna implementering är förkompilerad till ett maskinspråk.
Bibliotek är förkompilerade eftersom det inte finns någon anledning att kompilera om biblioteken eftersom de knappast förändras. För det andra, eftersom de förkompilerade biblioteken är i en maskinspråkform är de säkrade eftersom ingen kan komma åt dem direkt. Således är biblioteken säkrade.
I C ++ har vi två typer av bibliotek:
- Statiska bibliotek
- Dynamiska bibliotek
Statiska bibliotek
Statiska bibliotek kallas också för arkiv. Ett statiskt bibliotek är ett bibliotek som blir en del av den körbara som refererar till den. Således när vi utvecklar en applikation och refererar till ett statiskt bibliotek i den, ersätts innehållet i det statiska biblioteket i applikationen.
De statiska biblioteken på Windows har vanligtvis ett tillägg '.lib' medan de på Linux har tillägget '.a' (eller arkiv).
krav på framkallningsteknik inom programvaruteknik
En fördel med att ha ett statiskt programreferensbibliotek är att vi inte behöver distribuera det statiska biblioteket tillsammans med den körbara. Detta beror på att innehållet i det statiska biblioteket är en del av applikationerna och det inte finns något behov av att ge det separat.
Denna specifika fördel leder till en nackdel eftersom den körbara filen kan bli skrymmande och för mycket utrymme slösas bort eftersom biblioteket är en del av den körbara.
En annan nackdel med att ha ett statiskt bibliotek är att om det statiska biblioteket ändras, måste den körbara referensen till det också uppdateras.
Dynamiska bibliotek
Det dynamiska biblioteket är också känt som 'delat bibliotek'. I Windows har det dynamiska biblioteket tillägget '.dll' (dynamiskt länkat bibliotek). På Linux har det dynamiska biblioteket tillägget '.so' (delat objekt).
Ett dynamiskt bibliotek är ett bibliotek som består av rutiner som laddas in i applikationen vid körtid. När en applikation refererar till ett dynamiskt bibliotek blir biblioteket inte en del av applikationen men det förblir som en separat enhet.
Det dynamiska biblioteket har en fördel att en kopia av biblioteket kan delas av många applikationer och därmed sparar utrymme. Ytterligare en fördel är att eftersom det dynamiska biblioteket är en separat enhet, ändras inte den körbara applikationen när det dynamiska biblioteket ändras.
Den enda nackdelen som ett dynamiskt bibliotek har är att det kräver ett separat program för att ladda och referera till biblioteket, vilket kan vara besvärligt. För att lösa detta problem använder vi rutinen 'importbibliotek'.
En importera bibliotek är en mekanism som laddar och använder ett dynamiskt bibliotek automatiskt i programmet. I Windows behåller importbiblioteket ett litet statiskt bibliotek (.lib) med samma namn som .dll-filen och är länkat till programmet vid kompileringen.
När detta är klart används det dynamiska biblioteket som om det vore ett statiskt bibliotek. På Linux-operativsystemet fungerar det dynamiska biblioteket eller det delade objektet (.so) som ett importbibliotek såväl som ett dynamiskt bibliotek. De flesta länkarna på Linux OS kan bygga ett importbibliotek för ett dynamiskt bibliotek.
Hur man installerar och använder C ++ - bibliotek
Låt oss se några av stegen som vi behöver följa för att installera dessa bibliotek och använda dem i vår applikation.
# 1) Förvärva biblioteket
För att kunna använda biblioteket i vår applikation måste vi först förvärva biblioteket. Biblioteket kan vara förkompilerat - i ett sådant fall behöver vi bara ladda ner biblioteket för operativsystemet. Om biblioteket inte är förkompilerat måste vi ladda ner källkoden och kompilera den på vår maskin.
På windows har biblioteken vanligtvis .zip-tillägg medan bibliotekspaketet på Linux-operativsystemet distribueras som ”.RPM”.
# 2) Installera biblioteket
Nästa steg när vi skaffar biblioteket är att installera biblioteket. Installation på Windows är lika enkelt som att packa upp innehållet i biblioteket i en mapp. På Linux kan vi anropa pakethanteraren för att installera biblioteket.
# 3) Inkludera bibliotekets sökväg för kompilatorn
Vi måste ställa in sökvägen för biblioteket så att kompilatorn vet var den ska leta efter biblioteksfilerna. Detta kan vara 'inkludera' katalog i Windows eller '/ usr / include' på Linux.
# 4) Länka bibliotekets sökväg
Detta steg utförs så att länkaren känner till den exakta sökvägen för biblioteken som den måste länka under länkningsprocessen. Vanligtvis finns det '/ lib' -mappen i Windows eller '/ usr / lib' -mappen på Linux som innehåller alla bibliotek.
När biblioteket har installerats känner kompilatorn och länken till biblioteksvägen och biblioteket är klart för användning. I vårt program kan vi referera till bibliotekets funktionalitet, och eftersom vi har inkluderat rubrikfilerna i vårt program kommer kompilatorn att kunna kompilera funktionaliteten.
Eftersom programmerare oftast använder IDE för utveckling anger vi biblioteksvägen i själva IDE.
Standardrubriker / bibliotek i C ++
Låt oss diskutera några av de standardrubriker eller bibliotek som C ++ -språket använder. Vi har redan diskuterat dessa rubriker i sina respektive ämnen i våra C ++ -handledning.
C Standardbibliotek
ANSI C-standarden specificerar C-standardbibliotek eller libc som fungerar som standardbibliotek för C-programmeringsspråket. C ++ inkluderar varje rubrik från C-standardbiblioteket under olika namn genom att lägga till 'c' i början och ta bort '.h' i slutet. Således blir rubriken xxx.h i C 'cxxx' i C ++ -standarden.
C-standardbiblioteket erbjuder bland annat funktioner relaterade till makron, stränghantering, matematiska beräkningar, typdefinitioner, ingångs- / utdatahantering, minneshantering etc.
Kolla upp här för mer information om C Standard Library.
allmän
Det allmänna C ++ - biblioteket innehåller följande rubriker som visas nedan.
Rubrikens namn | Beskrivning |
---|---|
Definierar funktionalitet för tupeln. Tillgänglig från och med C ++ 11. | |
Algoritmer som används av många behållare definieras i denna rubrik. | |
Inkluderar tidselement som std :: chrono :: time_point, std :: chrono :: duration och klockor. | |
Denna rubrik ger funktioner för objekt som ska användas med allmänna algoritmer. | |
Innehåller klasser och mallar för iteratorer. | |
Definierar minneshanteringsfunktionalitet i C ++. | |
Definierar standardundantagsklasser inklusive std :: logic_error och std :: runtime_error, båda härledda från std :: exception. | |
Mallklasser som std :: par etc. eller namnområden som std :: rel_ops definieras i denna rubrik. |
Strömmar och in / ut
Rubrikens namn | Beskrivning |
---|---|
Innehåller funktionaliteten för mallklassen std :: ostream och andra stödklasser för utdata. | |
Ger funktionalitet för filbaserad input-output. | |
Innehåller funktionalitet för utdataformatering som precision, bas etc. | |
Innehåller grundläggande funktionalitet för iostream-operationer. | |
Tillhandahåller vidarebefordran av flera I / O-relaterade klassmallar. | |
Ger C ++ ingångs- och utgångsfundamental. | |
Innehåller funktionaliteten för mallklassen std :: istream och andra stödklasser för inmatning. | |
Definierar mallklass std :: stringstream och andra stödklasser som används för strängmanipulation. | |
Innehåller funktionalitet för läsning och skrivning till / från vissa typer av karaktärssekvenser, t.ex. externa filer eller strängar. |
Språkstöd
Rubrikens namn | Beskrivning |
---|---|
Implementerar funktionaliteten för std :: kö, en enda slutkön och std :: prioritetskö, en prioritetskö. | |
Denna rubrik innehåller olika typer och funktioner för undantagshantering, inklusive basklassen för alla undantag, std :: exception. | |
Denna rubrik innehåller mallklassen std :: numeric_limits som används för att beskriva grundläggande numeriska egenskaper | |
Innehåller operatörer som är nya och raderade och andra funktioner relaterade till grunderna för C ++ - minneshantering. | |
Tillhandahåller faciliteter för att arbeta med C ++ information om körningstyp. |
Strängar
Rubrikens namn | Beskrivning |
---|---|
Denna rubrik innehåller standardsträngklasserna och mallarna i C ++. | |
Detta är nytt i C ++ 11. Tillhandahåller verktyg för mönstermatchning av strängar med reguljära uttryck. |
Lokalisering
Rubrikens namn | Beskrivning |
---|---|
Denna rubrik har språkfunktionalitet. Det definierar klasser och deklarerar funktioner som inkapslar och manipulerar den information som är specifik för en lokal. | |
Innehåller kodkonverteringsfasetter för olika teckenkodningar. |
Behållare
Rubrikens namn | Beskrivning |
---|---|
Innehåller funktionalitet för std :: array, en behållare för en array med fast storlek. Nytt tillägg i C ++ 11 och TR1. | |
Specialiserad behållarklass std :: bitset, en bitmatris. | |
Innehåller funktionalitet för std :: deque, en dubbelsidig kö. | |
Rubrik för std :: forward_list, en enstaka länkad lista. Nytt tillägg i C ++ 11 och TR1. | |
Innehåller funktionalitet för std :: list, en dubbelt länkad lista. | |
Innehåller funktionalitet för std :: map och std :: multimap, sorterad associativ array och multimap. | |
Har rubriken för std :: set och std :: multiset, sorterade associerande behållare eller uppsättningar. | |
Tillhandahåller containeradapter klass std :: stack, en stack. | |
Denna rubrik innehåller std :: unordered_map och std :: unordered_multimap, hash tabeller funktionalitet. Nytt i C ++ 11 och TR1. | |
Ger funktionalitet för std :: unordered_set och std :: unordered_multiset. Nytt i C ++ 11 och TR1. | |
Ger funktionalitet för std :: vector, en dynamisk matris. |
Trådsstödbibliotek
Rubrikens namn | Beskrivning |
---|---|
En ny klass och namnområde för att arbeta med trådar från och med C ++ 11. | |
Det nya tillskottet till C ++ 11 och framåt. Det tillhandahåller mutexer, lås, samtal en gång, etc. som alla är mekanismerna för ömsesidig uteslutning. | |
Innehåller funktionalitet för villkorsvariabler som ger synkroniseringsprimitiv som används för att blockera en tråd tills de meddelas av någon annan tråd att något villkor är uppfyllt eller tills en systemtid uppnås. Det nya tillägget för C ++ 11 och framåt. | |
Denna rubrik har komponenterna som ett C ++ - program kan använda för att hämta i en tråd och resultatet (värde eller undantag) från en funktion som har körts i samma tråd eller annan tråd. |
Numeriskt bibliotek
Rubrikens namn | Beskrivning |
---|---|
Rubriken beskriver olika funktioner för att representera och manipulera komplexa nummer. Det har också en klassmall för komplexa nummer | |
Funktion för att generera (pseudo-) slumptal | |
Denna rubrik innehåller - fem klassmallar (valarray, slice_array, gslice_array, mask_array och indirect_array), - två klasser (skiva och gslice), - En serie relaterade funktionsmallar för att representera och manipulera värderingar. | |
Innehåller allmänna numeriska funktioner. |
Slutsats
Vi diskuterade C ++ - bibliotek i detalj tillsammans med deras typer och stegen för att installera och installera biblioteket.
Vi fick veta att C ++ - standardbiblioteket innehåller olika rubriker som ger olika funktioner. Vi kan använda dessa standardbiblioteksrubriker för att utveckla en mängd olika applikationer i C ++.
=> Kontrollera ALLA C ++ -handledning här.
Rekommenderad läsning
- Biblioteksfunktioner i C ++
- Standardmallbibliotek (STL): En kort introduktion
- En fullständig översikt över C ++
- 70+ BEST C ++ självstudier för att lära dig C ++ programmering GRATIS
- Formatera I / O: printf, sprintf, scanf-funktioner i C ++
- Grundläggande in- / utmatningsfunktioner i C ++
- Strängfunktioner i C ++: getline, substring, stränglängd och mer