c libraries how install
Denne C ++ biblioteksopplæringen vil forklare hva som er biblioteker i C ++, deres typer sammen med installasjon og bruk av et C ++ standardbibliotek:
Et bibliotek kan defineres som en pakke med kode eller funksjoner som er gjenbrukbare. Ulike applikasjoner kan bruke samme bibliotek igjen og igjen. Ved å ha biblioteker oppnår vi gjenbrukbarhet, dvs. et av prinsippene for objektorientert programmering.
For eksempel, matematiske funksjoner som sin, cos, tan, abs, etc. kan gjøres om til et bibliotek. Ved å gjøre dette trenger vi ikke å skrive disse funksjonene igjen og igjen for hver applikasjon. Vi kan bare referere til biblioteket og bruke koden i applikasjonene våre på nytt.
=> Besøk her for å lære C ++ fra grunnen.
Hva du vil lære:
C ++ biblioteker
Et C ++ - bibliotek består vanligvis av:
En topptekstfil: Dette definerer funksjonaliteten som biblioteket tilbyr.
En forhåndskompilert binær: Denne filen inneholder den faktiske implementeringen av funksjonaliteten. Denne implementeringen er forhåndskompilert til et maskinspråk.
Biblioteker er forhåndskompilert, da det ikke er grunn til å kompilere bibliotekene på nytt, ettersom de knapt endrer seg. For det andre, ettersom de forhåndskompilerte bibliotekene er i en maskinspråklig form, er de sikret fordi ingen kan få tilgang til dem direkte. Dermed er bibliotekene sikret.
I C ++ har vi to typer biblioteker:
- Statiske biblioteker
- Dynamiske biblioteker
Statiske biblioteker
Statiske biblioteker kalles også som arkiver. Et statisk bibliotek er et bibliotek som blir en del av den kjørbare filen som refererer til den. Når vi altså utvikler en applikasjon og refererer til et statisk bibliotek i den, erstattes innholdet i det statiske biblioteket i applikasjonen.
De statiske bibliotekene på Windows har vanligvis utvidelsen '.lib' mens de på Linux har utvidelsen '.a' (eller arkiv).
krav om fremkallingsteknikker innen programvareteknikk
En fordel med å ha et statisk biblioteksreferanse er at vi ikke trenger å distribuere det statiske biblioteket sammen med den kjørbare filen. Dette er fordi innholdet i det statiske biblioteket er en del av applikasjonene, og det er ikke nødvendig å gi det separat.
Denne spesifikke fordelen resulterer i en ulempe da den kjørbare filen kan bli klumpete og for mye plass blir bortkastet ettersom biblioteket er en del av den kjørbare.
En annen ulempe med å ha et statisk bibliotek er at hvis det statiske biblioteket endres, så må også den kjørbare henvisningen til det oppdateres.
Dynamiske biblioteker
Det dynamiske biblioteket er også kjent som det “delte biblioteket”. I Windows har det dynamiske biblioteket utvidelsen “.dll” (dynamisk koblet bibliotek). På Linux har det dynamiske biblioteket utvidelsen “.so” (delt objekt).
Et dynamisk bibliotek er et bibliotek som består av rutiner som lastes inn i applikasjonen på kjøretid. Når et program refererer til et dynamisk bibliotek, blir ikke biblioteket en del av applikasjonen, men det forblir som en egen enhet.
Det dynamiske biblioteket har en fordel at en kopi av biblioteket kan deles av mange applikasjoner og dermed sparer plass. Nok en fordel er at siden det dynamiske biblioteket er en egen enhet, endres ikke programkjørbarheten når det dynamiske biblioteket endres.
Den eneste ulempen som et dynamisk bibliotek har, er at det krever et eget program for å laste inn og referere til biblioteket som kan være tungvint. For å løse dette problemet bruker vi rutinen 'importbibliotek'.
An importer biblioteket er en mekanisme som laster inn og bruker et dynamisk bibliotek automatisk i programmet. På Windows holder importbiblioteket et lite statisk bibliotek (.lib) med samme navn som .dll-filen og er koblet til programmet på kompileringstidspunktet.
Når dette er gjort, brukes det dynamiske biblioteket som om det var et statisk bibliotek. På Linux-operativsystemet fungerer det dynamiske biblioteket eller det delte objektet (.so) -filen som et importbibliotek så vel som et dynamisk bibliotek. De fleste koblerne på Linux OS kan bygge et importbibliotek for et dynamisk bibliotek.
Hvordan installere og bruke C ++ biblioteker
La oss se noen av trinnene vi trenger å følge for å installere disse bibliotekene og bruke dem i applikasjonen vår.
# 1) Å anskaffe biblioteket
For å kunne bruke biblioteket i applikasjonen vår, må vi først anskaffe biblioteket. Biblioteket kan være forhåndskompilert - i et slikt tilfelle trenger vi bare å laste ned biblioteket for operativsystemet. Hvis biblioteket ikke er forhåndskompilert, må vi laste ned kildekoden og kompilere den på maskinen vår.
På windows har bibliotekene vanligvis .zip-utvidelse mens på Linux-operativsystemet er bibliotekspakken distribuert som ‘.RPM’.
# 2) Installer biblioteket
Det neste trinnet når vi skaffer biblioteket, er å installere biblioteket. Installasjon på Windows er så enkelt som å pakke ut innholdet i biblioteket i en mappe. På Linux kan vi påkalle pakkebehandling for å installere biblioteket.
# 3) Inkluder bibliotekstien til kompilatoren
Vi må sette banen til biblioteket slik at kompilatoren vet hvor han skal se etter bibliotekfilene. Dette kan være 'inkluderer' katalog på Windows eller '/ usr / inkluderer' på Linux.
# 4) Koble bibliotekstien
Dette trinnet utføres slik at linkeren vet den nøyaktige banen til bibliotekene den må koble under koblingsprosessen. Vanligvis er det ‘/ lib’ mappe på Windows eller ‘/ usr / lib’ mappe på Linux som inneholder alle bibliotekene.
Når biblioteket er installert, vet kompilatoren og linkeren banen til biblioteket som skal brukes, og biblioteket er klart til bruk. I vårt program kan vi referere til biblioteksfunksjonaliteten, og da vi har tatt med headerfilene i programmet vårt, vil kompilatoren kunne kompilere funksjonaliteten.
Siden programmerere for det meste bruker IDEer for utvikling, spesifiserer vi biblioteksstien i selve IDE.
Standard overskrifter / biblioteker i C ++
La oss diskutere noen av standardhodene eller bibliotekene C ++ - språket bruker. Vi har allerede diskutert disse overskriftene i deres respektive emner i C ++ -opplæringen.
C Standardbibliotek
ANSI C-standarden spesifiserer C standard bibliotek eller libc som fungerer som standardbibliotek for C-programmeringsspråket. C ++ inkluderer hvert topptekst fra C-standardbiblioteket under et annet navn ved å legge til 'c' i begynnelsen og fjerne '.h' på slutten. Dermed blir topptekst xxx.h i C ‘cxxx’ i C ++ -standarden.
C-standardbiblioteket gir funksjonalitet knyttet til makroer, strenghåndtering, matematiske beregninger Type definisjoner, inngangs- / utgangsbehandling, minnestyring, etc.
Sjekk her for mer informasjon om C Standard Library.
generell
Det generelle C ++ - biblioteket inkluderer følgende overskrifter som vist nedenfor.
Navnet på overskriften | Beskrivelse |
---|---|
Definerer funksjonalitet for tupelen. Tilgjengelig fra og med C ++ 11. | |
Algoritmer som brukes av mange containere er definert i denne overskriften. | |
Inkluderer tidselementer som std :: chrono :: time_point, std :: chrono :: varighet og klokker. | |
Denne overskriften gir funksjonsobjekter som skal brukes med generelle algoritmer. | |
Inneholder klasser og maler for iteratorer. | |
Definerer minnestyringsfunksjonalitet i C ++. | |
Definerer standard unntaksklasser inkludert std :: logic_error og std :: runtime_error, begge avledet fra std :: unntak. | |
Malklasser som std :: par osv. Eller navnerom som std :: rel_ops er definert i denne overskriften. |
Strømmer og inngang / utgang
Navnet på overskriften | Beskrivelse |
---|---|
Inneholder funksjonaliteten til malklassen std :: ostream og andre støtteklasser for utdata. | |
Tilbyr funksjonalitet for filbasert input-output. | |
Inneholder funksjonalitet for utdataformatering som presisjon, base etc. | |
Inneholder grunnleggende funksjonalitet for iostream-operasjoner. | |
Gir frem erklæringer om flere I / O-relaterte klassemaler. | |
Tilbyr C ++ inngangs- og utgangsgrunnleggende. | |
Inneholder funksjonaliteten til malklassen std :: istream og andre støtteklasser for inndata. | |
Definerer malklassen std :: stringstream og andre støtteklasser som brukes til strengmanipulering. | |
Inneholder funksjonalitet for lesing og skriving til / fra visse typer tegnsekvenser, for eksempel eksterne filer eller strenger. |
Språkstøtte
Header-navn | Beskrivelse |
---|---|
Implementerer funksjonaliteten for std :: kø, en kø med én ende og std :: priority_queue, en prioritetskø. | |
Denne overskriften inneholder forskjellige typer og funksjoner for unntakshåndtering, inkludert basisklassen for alle unntak, std :: unntak. | |
Denne overskriften inneholder malklassen std :: numeric_limits som brukes til å beskrive grunnleggende numeriske egenskaper | |
Inneholder operatører som er nye og slettede og andre funksjoner relatert til grunnleggende informasjon om C ++ minneadministrasjon. | |
Tilbyr fasiliteter for å arbeide med C ++ informasjon om kjøretidstype. |
Strenger
Navnet på overskriften | Beskrivelse |
---|---|
Denne overskriften inneholder standard strengklasser og maler i C ++. | |
Dette er nytt i C ++ 11. Tilbyr verktøy for mønstermatching av strenger ved bruk av regulære uttrykk. |
Lokalisering
Header-navn | Beskrivelse |
---|---|
Denne overskriften har lokalfunksjonalitet. Den definerer klasser og erklærer funksjoner som innkapsler og manipulerer informasjonen som er spesifikk for et sted. | |
Inneholder kodekonverteringsfasetter for forskjellige tegnkodinger. |
Beholdere
Header-navn | Beskrivelse |
---|---|
Inneholder funksjonalitet for std :: array, en container for en fast størrelse array. Nytt tillegg i C ++ 11 og TR1. | |
Spesialisert container klasse std :: bitset, en bit array. | |
Inneholder funksjonalitet for std :: deque, en kø med dobbelt slutt. | |
Topptekst for std :: forward_list, en enkelt koblet liste. Nytt tillegg i C ++ 11 og TR1. | |
Inneholder funksjonalitet for std :: list, en dobbeltkoblet liste. | |
Inneholder funksjonalitet for std :: map og std :: multimap, sortert assosiativ array og multimap. | |
Har overskriften for std :: sett og std :: flersett, sorterte assosiative beholdere eller sett. | |
Tilbyr containeradapterklasse std :: stack, en stack. | |
Denne overskriften inneholder std :: unordered_map og std :: unordered_multimap, hash tabeller funksjonalitet. Nytt i C ++ 11 og TR1. | |
Tilbyr funksjonalitet for std :: unordered_set og std :: unordered_multiset. Nytt i C ++ 11 og TR1. | |
Tilbyr funksjonalitet for std :: vector, en dynamisk matrise. |
Trådstøttebibliotek
Navnet på overskriften | Beskrivelse |
---|---|
En ny klasse og navneplass for å jobbe med tråder fra C ++ 11 og utover. | |
Det nye tilskuddet til C ++ 11 og utover. Det gir mutexes, låser, ring en gang osv. Som er alle mekanismene for gjensidig ekskludering. | |
Inneholder funksjonalitet for betingelsesvariabler som gir synkroniseringsprimitiver som brukes til å blokkere en tråd til de blir varslet av en annen tråd om at en betingelse er oppfylt eller til en systemtid er nådd. Det nye tillegget for C ++ 11 og utover. | |
Denne overskriften har komponentene som et C ++ - program kan bruke for å hente i en tråd og resultatet (verdi eller unntak) fra en funksjon som har kjørt i samme tråd eller en annen tråd. |
Numerisk bibliotek
Navnet på overskriften | Beskrivelse |
---|---|
Overskriften beskriver forskjellige funksjoner for å representere og manipulere komplekse tall. Den har også en klassemal for komplekse tall | |
Funksjonalitet for å generere (pseudo-) tilfeldige tall | |
Denne overskriften inneholder - fem klassemaler (valarray, slice_array, gslice_array, mask_array og indirect_array), - to klasser (skive og gslice), - En serie relaterte funksjonsmaler for å representere og manipulere verdiordninger. | |
Inneholder generelle numeriske operasjoner. |
Konklusjon
Vi diskuterte C ++ - biblioteker i detalj sammen med deres typer, og trinnene for å installere og sette opp biblioteket.
Vi ble kjent med at standard C ++ - biblioteket inneholder forskjellige overskrifter som gir forskjellige funksjoner. Vi kan bruke disse standardbibliotekets overskrifter til å utvikle en rekke applikasjoner i C ++.
=> Sjekk ALLE C ++ opplæringsprogrammer her.
Anbefalt lesing
- Biblioteksfunksjoner i C ++
- Standard malbibliotek (STL): En kort introduksjon
- En komplett oversikt over C ++
- 70+ BEST C ++ opplæringsprogrammer for å lære C ++ programmering GRATIS
- Formatering av I / O: printf, sprintf, scanf Funksjoner i C ++
- Grunnleggende inngangs- / utgangsoperasjoner i C ++
- Strengfunksjoner i C ++: getline, substring, strenglengde og mer