c libraries how install
Ovaj vodič za C ++ knjižnice objasnit će što su knjižnice u C ++-u, njihove vrste, zajedno s instalacijom i upotrebom C ++ standardne knjižnice:
Knjižnica se može definirati kao paket koda ili funkcija koji se može ponovno koristiti. Razni programi mogu iznova koristiti istu knjižnicu. Imajući knjižnice, postižemo ponovnu upotrebu, tj. Jedno od načela objektno orijentiranog programiranja.
Na primjer, matematičke funkcije poput grijeha, cos, preplanulosti, trbušnjaka itd. mogu se pretvoriti u knjižnicu. Na taj način ne moramo pisati ove funkcije uvijek iznova za svaku aplikaciju. Možemo se samo uputiti na biblioteku i ponovno upotrijebiti kôd u našim aplikacijama.
=> Posjetite ovdje da biste C ++ naučili od nule.
Što ćete naučiti:
C ++ knjižnice
Biblioteka C ++ obično se sastoji od:
Datoteka zaglavlja: Ovo definira funkcionalnost koju knjižnica nudi.
Unaprijed sastavljena binarna datoteka: Ova datoteka sadrži stvarnu implementaciju funkcionalnosti. Ova je implementacija prekompajlirana u strojni jezik.
Knjižnice su unaprijed sastavljene, jer nema razloga za ponovno sastavljanje knjižnica, jer se gotovo ne mijenjaju. Drugo, budući da su prethodno sastavljene knjižnice u obliku strojnog jezika, one su osigurane jer im nitko ne može izravno pristupiti. Tako su knjižnice osigurane.
U C ++ imamo dvije vrste knjižnica:
- Statične knjižnice
- Dinamičke knjižnice
Statične knjižnice
Statične knjižnice nazivaju se i arhivima. Statična knjižnica je knjižnica koja postaje dio izvršne datoteke koja se na nju odnosi. Dakle, kada razvijemo aplikaciju i u njoj referenciramo statičku knjižnicu, sadržaj statičke knjižnice zamjenjuje se u aplikaciji.
Statične knjižnice u sustavu Windows obično imaju proširenje '.lib', dok one na Linuxu imaju proširenje '.a' (ili arhiva).
programer u pitanjima ispitivanja
Jedna od prednosti posjedovanja programske statičke knjižnice je ta što ne moramo distribuirati statičku knjižnicu zajedno s izvršnom datotekom. To je zato što je sadržaj statičke knjižnice dio aplikacija i nema potrebe davati ga zasebno.
Ova specifična prednost rezultira nedostatkom jer izvršna datoteka može postati glomazna i izgubiti previše prostora jer je knjižnica dio izvršne datoteke.
Još jedan nedostatak posjedovanja statičke knjižnice je taj što ako se statička knjižnica promijeni, tada je potrebno i ažurirati izvršnu referencu na nju.
Dinamičke knjižnice
Dinamična knjižnica poznata je i pod nazivom „zajednička knjižnica“. U sustavu Windows dinamička knjižnica ima proširenje '.dll' (dinamički povezana knjižnica). Na Linuxu dinamička knjižnica ima proširenje '.so' (zajednički objekt).
Dinamička knjižnica je knjižnica koja se sastoji od rutina koje se učitavaju u aplikaciju u vrijeme izvođenja. Kad se aplikacija poziva na dinamičku knjižnicu, tada knjižnica ne postaje dio aplikacije, ali ostaje kao zasebna jedinica.
Prednost dinamičke knjižnice je što jedan primjerak knjižnice mogu dijeliti mnogi programi čime se štedi prostor. Još je jedna prednost što se dinamička knjižnica sastoji od zasebne cjeline, a izvršna se aplikacija ne mijenja kada se dinamička knjižnica promijeni.
Jedini nedostatak koji ima dinamička knjižnica je taj što zahtijeva zaseban program za učitavanje i referenciranje knjižnice što može biti glomazno. Da bismo riješili taj problem, koristimo se rutinom 'import library'.
An knjižnica za uvoz je mehanizam koji automatski učitava i koristi dinamičku knjižnicu u program. U sustavu Windows knjižnica za uvoz drži malu statičku biblioteku (.lib) koja ima isto ime kao .dll datoteka i povezana je s programom u vrijeme sastavljanja.
Jednom kad se to učini, dinamička se knjižnica koristi kao da je statična. U operacijskom sustavu Linux dinamička knjižnica ili datoteka zajedničkog objekta (.so) djeluje kao knjižnica uvoza kao i dinamička knjižnica. Većina povezivača na Linux OS-u može izgraditi knjižnicu za uvoz dinamičke knjižnice.
Kako instalirati i koristiti knjižnice C ++
Pogledajmo neke korake koje moramo slijediti da bismo instalirali te knjižnice i koristili ih u našoj aplikaciji.
# 1) Nabava knjižnice
Da bismo mogli koristiti knjižnicu u našoj aplikaciji, prvo moramo nabaviti knjižnicu. Knjižnica je možda unaprijed sastavljena - u takvom slučaju samo trebamo preuzeti knjižnicu za operativni sustav. Ako knjižnica nije prekompilirana, tada moramo preuzeti izvorni kod i kompilirati ga na našem stroju.
Na Windowsima knjižnice obično imaju .zip proširenje, dok se na Linux operativnom sustavu paket knjižnica distribuira kao '.RPM'.
# 2) Instalirajte knjižnicu
Sljedeći korak nakon što nabavimo knjižnicu je instalacija knjižnice. Instalacija na Windows jednostavna je poput raspakiranja sadržaja biblioteke u mapi. Na Linuxu se možemo pozvati upravitelja paketa za instalaciju knjižnice.
# 3) Uključite put knjižnice za Prevoditelj
Moramo postaviti put knjižnice tako da kompajler zna gdje tražiti datoteke knjižnice. To može biti direktorij 'uključi' na Windowsima ili '/ usr / include' na Linuxu.
# 4) Povežite put knjižnice
Ovaj se korak izvodi tako da povezivač zna točan put knjižnica koje mora povezati tijekom postupka povezivanja. Obično postoji mapa ‘/ lib’ u sustavu Windows ili mapa ‘/ usr / lib’ na Linuxu koja sadrži sve knjižnice.
Jednom kada se knjižnica instalira, sastavljač i povezivač znaju put knjižnice do upotrebe i knjižnica je spremna za upotrebu. U našem programu možemo se pozvati na funkcionalnost knjižnice, a kako smo u naš program uključili datoteke zaglavlja, prevoditelj će moći kompajlirati funkcionalnost.
Kako programeri uglavnom koriste IDE-ove za razvoj, mi sami navodimo put knjižnice u IDE-u.
Standardna zaglavlja / knjižnice na C ++
Razgovarajmo o nekim standardnim zaglavljima ili knjižnicama koje koristi jezik C ++. O tim smo zaglavljima već raspravljali u njihovim temama u našim tutorijalima za C ++.
C Standardna knjižnica
ANSI C standard određuje C standardna biblioteka ili libc koja djeluje kao standardna knjižnica za programski jezik C. C ++ uključuje svako zaglavlje iz C standardne biblioteke pod drugim imenom dodavanjem 'c' na početku i uklanjanjem '.h' na kraju. Tako će zaglavlje xxx.h u jeziku C postati 'cxxx' u standardu C ++.
Standardna knjižnica C između ostalog pruža funkcije povezane s makronaredbama, rukovanjem nizovima, matematičkim proračunima, definicijama vrsta, obradom ulaza / izlaza, upravljanjem memorijom itd.
Ček ovdje za više informacija o C standardnoj knjižnici.
Općenito
Opća knjižnica C ++ uključuje sljedeća zaglavlja kako je prikazano u nastavku.
Ime zaglavlja | Opis |
---|---|
Definira funkcionalnost korijena. Dostupno od C ++ 11 nadalje. | |
Algoritmi koje koriste mnogi spremnici definirani su u ovom zaglavlju. | |
Uključuje vremenske elemente poput std :: chrono :: time_point, std :: chrono :: duration i clocks. | |
Ovo zaglavlje pruža funkcije funkcije koje će se koristiti s općim algoritmima. | |
Sadrži klase i predloške za iteratore. | |
Definira funkcionalnost upravljanja memorijom u jeziku C ++. | |
Definira standardne klase iznimki, uključujući std :: logic_error i std :: runtime_error, obje izvedene iz std :: iznimke. | |
Klase predloška poput std :: pair itd. Ili imenski prostori poput std :: rel_ops definirani su u ovom zaglavlju. |
Streamovi i ulaz / izlaz
Ime zaglavlja | Opis |
---|---|
Sadrži funkcionalnost klase predloška std :: ostream i drugih podržavajućih klasa za izlaz. | |
Pruža funkcionalnost za unos-izlaz na temelju datoteka. | |
Sadrži funkcionalnost za oblikovanje izlaza poput preciznosti, baze itd. | |
Sadrži osnovnu funkcionalnost za iostream operacije. | |
Pruža prosljeđivanje deklaracija nekoliko predloga klasa povezanih s I / O. | |
Pruža C ++ ulazne i izlazne osnove. | |
Sadrži funkcionalnost klase predloška std :: istream i drugih podržavajućih klasa za unos. | |
Definira klasu predloška std :: stringstream i druge podržavajuće klase koje se koriste za manipulaciju nizom. | |
Sadrži funkcionalnost za čitanje i pisanje u / iz određenih vrsta sekvenci znakova, poput vanjskih datoteka ili nizova. |
Jezična podrška
Ime zaglavlja | Opis |
---|---|
Provodi funkcionalnost za std :: queue, jednostruki red i std :: priority_queue, prioritetni red. | |
Ovo zaglavlje sadrži razne vrste i funkcije za rukovanje iznimkama, uključujući osnovnu klasu za sve iznimke, std :: iznimka. | |
Ovo zaglavlje sadrži klasu predloška std :: numeric_limits koja se koristi za opisivanje osnovnih numeričkih svojstava | |
Sadrži operatore new i delete te ostale funkcije povezane s osnovama upravljanja memorijom C ++. | |
Pruža mogućnosti za rad s informacijama o tipu vremena izvršavanja C ++. |
Žice
Ime zaglavlja | Opis |
---|---|
Ovo zaglavlje sadrži standardne klase nizova i predloške u jeziku C ++. | |
To je novo u jeziku C ++ 11. Pruža uslužne programe za nizove koji se podudaraju s uzorkom pomoću regularnih izraza. |
Lokalizacija
Ime zaglavlja | Opis |
---|---|
Ovo zaglavlje ima lokalnu funkcionalnost. Definira klase i deklarira funkcije koje enkapsuliraju i manipuliraju informacijama specifičnim za lokalizaciju. | |
Sadrži aspekte pretvorbe koda za različita kodiranja znakova. |
Spremnici
Ime zaglavlja | Opis |
---|---|
Sadrži funkcionalnost za std :: array, spremnik za niz fiksne veličine. Novi dodatak u C ++ 11 i TR1. | |
Specijalizirana klasa spremnika std :: bitset, bitni niz. | |
Sadrži funkcionalnost za std :: deque, dvostruki red čekanja. | |
Zaglavlje za std :: forward_list, pojedinačno povezani popis. Novi dodatak u C ++ 11 i TR1. | |
Sadrži funkcionalnost za std :: list, dvostruko povezan popis. | |
Sadrži funkcionalnost za std :: map i std :: multimap, sortirani asocijativni niz i multimap. | |
Ima zaglavlje za std :: set i std :: multiset, sortirane asocijativne spremnike ili skupove. | |
Pruža klasu prilagodnika spremnika std :: stack, stog. | |
Ovo zaglavlje sadrži std :: unordered_map i std :: unordered_multimap, funkcionalnost hash tablica. Novo u C ++ 11 i TR1. | |
Pruža funkcionalnost za std :: unordered_set i std :: unordered_multiset. Novo u C ++ 11 i TR1. | |
Pruža funkcionalnost za std :: vector, dinamički niz. |
Knjižnica za podršku niti
Ime zaglavlja | Opis |
---|---|
Nova klasa i prostor imena za rad s nitima od C ++ 11 nadalje. | |
Novi dodatak C ++ 11 nadalje. Pruža mutekseve, zaključava, poziva jednom, itd. Koji su svi mehanizmi za međusobno isključivanje. | |
Sadrži funkcionalnost za varijable Condition koje pružaju primitive sinkronizacije koji se koriste za blokiranje niti dok neka druga nit ne obavijesti da je neki uvjet zadovoljen ili dok se ne dostigne sistemsko vrijeme. Novi dodatak za C ++ 11 nadalje. | |
Ovo zaglavlje sadrži komponente koje program C ++ može koristiti za dohvaćanje u jednoj niti i rezultat (vrijednost ili iznimka) iz funkcije koja je pokrenuta u istoj niti ili drugoj niti. |
Numerička knjižnica
Ime zaglavlja | Opis |
---|---|
Zaglavlje opisuje razne funkcije za predstavljanje i manipuliranje složenim brojevima. Također ima predložak klase za složene brojeve | |
Funkcionalnost generiranja (pseudo-) slučajnih brojeva | |
Ovo zaglavlje sadrži - pet predložaka klasa (valarray, slice_array, gslice_array, mask_array i indirect_array), - dva razreda (kriška i kriška), - Niz povezanih predložaka funkcija za predstavljanje i manipulaciju nizovima vrijednosti. | |
Sadrži opće numeričke operacije. |
Zaključak
Detaljno smo razgovarali o knjižnicama C ++ zajedno s njihovim vrstama i koracima za instaliranje i postavljanje knjižnice.
Otkrili smo da standardna knjižnica C ++ sadrži razna zaglavlja koja pružaju različite funkcionalnosti. Ova standardna zaglavlja knjižnice možemo koristiti za razvoj raznih aplikacija na jeziku C ++.
=> Ovdje provjerite SVE tutorijale za C ++.
Preporučena literatura
- Knjižnične funkcije na C ++
- Biblioteka standardnih predložaka (STL): Kratki uvod
- Cjelovit pregled C ++-a
- 70+ NAJBOLJIH Vodiča za C ++ za BESPLATNO učenje C ++ programiranja
- Formatiranje I / O: printf, sprintf, scanf Funkcije u C ++
- Osnovne ulazno / izlazne operacije na C ++
- String funkcije u C ++: getline, podniz, duljina niza i još mnogo toga