c libraries how install
Denne C ++ biblioteksvejledning forklarer, hvad der er biblioteker i C ++, deres typer sammen med installation og brug af et C ++ - standardbibliotek:
Et bibliotek kan defineres som en pakke kode eller funktioner, der kan genbruges. Forskellige applikationer kan bruge det samme bibliotek igen og igen. Ved at have biblioteker opnår vi genanvendelighed, dvs. et af principperne for objektorienteret programmering.
For eksempel, matematiske funktioner som sin, cos, tan, abs osv. kan gøres til et bibliotek. Ved at gøre dette behøver vi ikke skrive disse funktioner igen og igen for hver applikation. Vi kan bare henvise til biblioteket og genbruge koden i vores applikationer.
=> Besøg her for at lære C ++ fra bunden.
Hvad du lærer:
C ++ biblioteker
Et C ++ - bibliotek består normalt af:
En header-fil: Dette definerer den funktionalitet, som biblioteket tilbyder.
En forudkompileret binær: Denne fil indeholder den faktiske implementering af funktionaliteten. Denne implementering er forudkompileret til et maskinsprog.
Biblioteker er forudkompileret, da der ikke er nogen grund til at kompilere bibliotekerne igen, da de næppe ændrer sig. For det andet, da de forud kompilerede biblioteker er i en maskinsprogform, er de sikret, da ingen kan få adgang til dem direkte. Således er bibliotekerne sikret.
I C ++ har vi to typer biblioteker:
- Statiske biblioteker
- Dynamiske biblioteker
Statiske biblioteker
Statiske biblioteker kaldes også som arkiver. Et statisk bibliotek er et bibliotek, der bliver en del af den eksekverbare fil, der refererer til det. Når vi således udvikler en applikation og henviser til et statisk bibliotek i den, erstattes indholdet af det statiske bibliotek i applikationen.
De statiske biblioteker på Windows har normalt en udvidelse '.lib', mens de på Linux har udvidelsen '.a' (eller arkiv).
bedste python ide mac os x
En fordel ved at have et programreference statisk bibliotek er, at vi ikke behøver at distribuere det statiske bibliotek sammen med den eksekverbare. Dette skyldes, at indholdet af det statiske bibliotek er en del af applikationerne, og det er ikke nødvendigt at give det separat.
Denne specifikke fordel resulterer i en ulempe, da den eksekverbare fil kan blive omfangsrig, og der spildes for meget plads, da biblioteket er en del af den eksekverbare.
En anden ulempe ved at have et statisk bibliotek er, at hvis det statiske bibliotek ændres, så skal den eksekverbare henvisning til det også opdateres.
Dynamiske biblioteker
Det dynamiske bibliotek er også kendt som det “delte bibliotek”. I Windows har det dynamiske bibliotek udvidelsen “.dll” (dynamisk linket bibliotek). På Linux har det dynamiske bibliotek udvidelsen “.so” (delt objekt).
Et dynamisk bibliotek er et bibliotek, der består af rutiner, der indlæses i applikationen på kørselstid. Når en applikation henviser til et dynamisk bibliotek, bliver biblioteket ikke en del af applikationen, men det forbliver som en separat enhed.
Det dynamiske bibliotek har en fordel, at en kopi af biblioteket kan deles af mange applikationer og derved sparer plads. Endnu en fordel er, at da det dynamiske bibliotek er en separat enhed, ændres den eksekverbare applikationsprogram ikke, når det dynamiske bibliotek ændres.
Den eneste ulempe, et dynamisk bibliotek har, er at det kræver et separat program for at indlæse og henvise til biblioteket, som kan være besværligt. For at løse dette problem bruger vi rutinen 'importbibliotek'.
En importer bibliotek er en mekanisme, der indlæser og bruger et dynamisk bibliotek automatisk i programmet. På Windows opbevarer importbiblioteket et lille statisk bibliotek (.lib) med samme navn som .dll-filen og er knyttet til programmet på kompileringstidspunktet.
Når dette er gjort, bruges det dynamiske bibliotek som om det var et statisk bibliotek. På Linux-operativsystemet fungerer det dynamiske bibliotek eller den delte objektfil (.so) som et importbibliotek såvel som et dynamisk bibliotek. De fleste af linkerne på Linux OS er i stand til at oprette et importbibliotek til et dynamisk bibliotek.
Sådan installeres og bruges C ++ biblioteker
Lad os se nogle af de trin, vi skal følge for at installere disse biblioteker og bruge dem i vores applikation.
# 1) Erhvervelse af biblioteket
For at kunne bruge biblioteket i vores applikation skal vi først anskaffe biblioteket. Biblioteket kan være forkompileret - i et sådant tilfælde skal vi bare downloade biblioteket til operativsystemet. Hvis biblioteket ikke er forudkompileret, skal vi downloade kildekoden og kompilere den på vores maskine.
På windows har bibliotekerne normalt .zip-udvidelse, mens bibliotekspakken på Linux-operativsystemet distribueres som '.RPM'.
# 2) Installer biblioteket
Det næste trin, når vi først får biblioteket, er at installere biblioteket. Installation på Windows er så simpelt som at pakke indholdet af biblioteket ud i en mappe. På Linux kan vi påkalde pakkehåndtering for at installere biblioteket.
# 3) Inkluder stien til biblioteket til Compiler
Vi er nødt til at indstille stien til biblioteket, så compileren ved, hvor han skal lede efter biblioteksfilerne. Dette kan være 'inkluder' bibliotek på Windows eller '/ usr / include' på Linux.
# 4) Link bibliotekstien
Dette trin udføres, så linkeren kender den nøjagtige sti til bibliotekerne, som den skal linke under sammenkædningsprocessen. Normalt er der mappen '/ lib' på Windows eller '/ usr / lib' -mappen på Linux, der indeholder alle bibliotekerne.
Når biblioteket er installeret, kender compileren og linkeren stien til biblioteket, der skal bruges, og biblioteket er klar til brug. I vores program kan vi henvise til biblioteksfunktionaliteten, og da vi har inkluderet headerfilerne i vores program, vil compileren være i stand til at kompilere funktionaliteten.
Da programmører for det meste bruger IDE'er til udvikling, specificerer vi biblioteksstien i selve IDE'en.
Standard overskrifter / biblioteker i C ++
Lad os diskutere nogle af de standardoverskrifter eller biblioteker, som C ++ - sproget bruger. Vi har allerede diskuteret disse overskrifter i deres respektive emner i vores C ++ tutorials.
C Standardbibliotek
ANSI C-standarden specificerer C standardbibliotek eller libc der fungerer som standardbiblioteket til C-programmeringssproget. C ++ inkluderer hvert overskrift fra C-standardbiblioteket under et andet navn ved at tilføje 'c' i begyndelsen og fjerne '.h' i slutningen. Således bliver header xxx.h i C 'cxxx' i C ++ -standarden.
C-standardbiblioteket giver blandt andet funktionalitet relateret til makroer, strenghåndtering, matematiske beregningstypedefinitioner, input / output-behandling, hukommelsesstyring osv.
Kontrollere her for mere information om C Standard Library.
generel
Det generelle C ++ - bibliotek indeholder følgende overskrifter som vist nedenfor.
Overskriftens navn | Beskrivelse |
---|---|
Definerer funktionalitet for tuplen. Fås fra C ++ 11 og fremefter. | |
Algoritmer brugt af mange containere er defineret i denne overskrift. | |
Inkluderer tidselementer som std :: chrono :: time_point, std :: chrono :: varighed og ure. | |
Denne header indeholder funktionsobjekter, der skal bruges med generelle algoritmer. | |
Indeholder klasser og skabeloner til iteratorer. | |
Definerer hukommelsesstyringsfunktionalitet i C ++. | |
Definerer standard undtagelsesklasser inklusive std :: logic_error og std :: runtime_error, begge afledt af std :: exception. | |
Skabelonklasser som std :: par osv. Eller navneområder som std :: rel_ops er defineret i denne overskrift. |
Streams og input / output
Overskriftens navn | Beskrivelse |
---|---|
Indeholder funktionaliteten af skabelonklassen std :: ostream og andre understøttende klasser til output. | |
Tilbyder funktionalitet til filbaseret input-output. | |
Indeholder funktionalitet til outputformatering som præcision, base osv. | |
Indeholder grundlæggende funktionalitet til iostream-operationer. | |
Giver fremsendelseserklæringer for flere I / O-relaterede klasseskabeloner. | |
Giver C ++ input og output grundlæggende. | |
Indeholder funktionalitet i skabelonklassen std :: istream og andre understøttende klasser til input. | |
Definerer skabelonklassen std :: stringstream og andre understøttende klasser, der bruges til strengmanipulation. | |
Indeholder funktionalitet til læsning og skrivning til / fra bestemte typer tegnsekvenser, såsom eksterne filer eller strenge. |
Sprogstøtte
Header-navn | Beskrivelse |
---|---|
Implementerer funktionaliteten til std :: kø, en kø med en ende og std :: prioritet_kø, en prioritetskø. | |
Denne overskrift indeholder forskellige typer og funktioner til håndtering af undtagelser, inklusive basisklassen for alle undtagelser, std :: undtagelse. | |
Denne overskrift indeholder skabelonklassen std :: numeric_limits, der bruges til at beskrive grundlæggende numeriske egenskaber | |
Indeholder operatører, der er nye og slettet, og andre funktioner relateret til fundamentet for C ++ hukommelsesstyring. | |
Tilbyder faciliteter til at arbejde med C ++ information om kørselstidstype. |
Strenge
Overskriftens navn | Beskrivelse |
---|---|
Denne overskrift indeholder standardstrengklasser og skabeloner i C ++. | |
Dette er nyt i C ++ 11. Tilbyder hjælpeprogrammer til mønstret matchende strenge ved hjælp af regulære udtryk. |
Lokalisering
Header-navn | Beskrivelse |
---|---|
Denne overskrift har lokal funktionalitet. Det definerer klasser og erklærer funktioner, der indkapsler og manipulerer den specifikke information til et landestandard. | |
Indeholder kodekonverteringsfacetter til forskellige tegnkodninger. |
Beholdere
Header-navn | Beskrivelse |
---|---|
Indeholder funktionalitet til std :: array, en container til en array med fast størrelse. Ny tilføjelse i C ++ 11 og TR1. | |
Specialiseret container klasse std :: bitset, en bit array. | |
Indeholder funktionalitet til std :: deque, en kø med dobbelt ende. | |
Overskrift til std :: forward_list, en enkelt linket liste. Ny tilføjelse i C ++ 11 og TR1. | |
Indeholder funktionalitet til std :: list, en dobbeltkoblet liste. | |
Indeholder funktionalitet til std :: map og std :: multimap, sorteret associerende array og multimap. | |
Har overskriften til std :: set og std :: multiset, sorterede associative containere eller sæt. | |
Giver containeradapterklasse std :: stack, en stack. | |
Denne overskrift indeholder std :: unordered_map og std :: unordered_multimap, hash tabeller funktionalitet. Nyt i C ++ 11 og TR1. | |
Giver funktionalitet til std :: unordered_set og std :: unordered_multiset. Nyt i C ++ 11 og TR1. | |
Giver funktionalitet til std :: vector, et dynamisk array. |
Trådsupportbibliotek
Overskriftens navn | Beskrivelse |
---|---|
En ny klasse og navneområde til at arbejde med tråde fra og med C ++ 11. | |
Den nye tilføjelse til C ++ 11 og fremefter. Det giver mutexes, låse, ringe en gang osv., Som alle er mekanismerne til gensidig udelukkelse. | |
Indeholder funktionalitet for betingelsesvariabler, der giver synkroniseringsprimitiver, der bruges til at blokere en tråd, indtil en anden tråd meddeler, at en betingelse er opfyldt, eller indtil en systemtid er nået. Den nye tilføjelse til C ++ 11 og fremefter. | |
Denne overskrift har de komponenter, som et C ++ - program kan bruge til at hente i en tråd og resultatet (værdi eller undtagelse) fra en funktion, der har kørt i samme tråd eller en anden tråd. |
Numerisk bibliotek
Overskriftens navn | Beskrivelse |
---|---|
Overskriften beskriver forskellige funktioner til at repræsentere og manipulere komplekse tal. Det har også en klasseskabelon til komplekse tal | |
Funktionalitet til at generere (pseudo-) tilfældige tal | |
Denne overskrift indeholder - fem klasseskabeloner (valarray, slice_array, gslice_array, mask_array og indirect_array), - to klasser (skive og gslice) - En række relaterede funktionsskabeloner til at repræsentere og manipulere matrixer af værdier. | |
Indeholder generelle numeriske operationer. |
Konklusion
Vi diskuterede C ++ - biblioteker i detaljer sammen med deres typer og trinene til installation og opsætning af biblioteket.
Vi fik at vide, at standard C ++ - biblioteket indeholder forskellige overskrifter, der giver forskellige funktioner. Vi kan bruge disse standardbiblioteksoverskrifter til at udvikle en række applikationer i C ++.
=> Tjek ALLE C ++ tutorials her.
Anbefalet læsning
- Biblioteksfunktioner i C ++
- Standard skabelonbibliotek (STL): En kort introduktion
- En komplet oversigt over C ++
- 70+ BEST C ++ tutorials til at lære C ++ programmering GRATIS
- Formatering af I / O: printf, sprintf, scanf-funktioner i C ++
- Grundlæggende input / output-operationer i C ++
- Strengfunktioner i C ++: getline, substring, strenglængde og mere