c libraries how install
Ta vadnica knjižnic C ++ bo razložila, kaj so knjižnice v jeziku C ++, njihove vrste, skupaj z namestitvijo in uporabo standardne knjižnice C ++:
Knjižnico lahko definiramo kot paket kode ali funkcij, ki je večkrat uporabna. Različni programi lahko vedno znova uporabljajo isto knjižnico. Z uporabo knjižnic dosežemo večkratno uporabo, torej eno od načel objektno usmerjenega programiranja.
Na primer matematične funkcije, kot so sin, cos, porjavelost, trebuh itd., je mogoče spremeniti v knjižnico. S tem vam ni treba vedno znova pisati teh funkcij za vsako aplikacijo. Lahko se samo sklicamo na knjižnico in ponovno uporabimo kodo v naših aplikacijah.
=> Obiščite tukaj, če se želite naučiti C ++ iz nič.
Kaj se boste naučili:
Knjižnice C ++
Knjižnico C ++ običajno sestavljajo:
Datoteka z glavo: To opredeljuje funkcionalnost, ki jo ponuja knjižnica.
Vnaprej sestavljeni binarni: Ta datoteka vsebuje dejansko izvedbo funkcije. Ta izvedba je vnaprej prevedena v strojni jezik.
Knjižnice so vnaprej sestavljene, saj ni razloga za ponovno sestavljanje knjižnic, saj se skoraj ne spreminjajo. Drugič, ker so vnaprej prevedene knjižnice v obliki strojnega jezika, so zaščitene, saj do njih nihče nima neposrednega dostopa. Tako so knjižnice zavarovane.
V C ++ imamo dve vrsti knjižnic:
- Statične knjižnice
- Dinamične knjižnice
Statične knjižnice
Statične knjižnice se imenujejo tudi arhivi. Statična knjižnica je knjižnica, ki postane del izvršljive datoteke, ki se sklicuje nanjo. Ko torej razvijemo aplikacijo in se v njej sklicujemo na statično knjižnico, se v njej nadomesti vsebina statične knjižnice.
Statične knjižnice v sistemu Windows imajo običajno pripono '.lib', medtem ko imajo knjižnice v Linuxu razširitev '.a' (ali arhiv).
pretvori YouTube v mp3, daljši od 20 minut
Ena od prednosti statične knjižnice programa je ta, da nam ni treba distribuirati statične knjižnice skupaj z izvršljivo datoteko. Vsebina statične knjižnice je namreč del aplikacij in je ni treba posebej navajati.
Ta posebna prednost ima za posledico slabši položaj, saj lahko izvršljiva datoteka postane obsežna in se zapravi preveč prostora, saj je knjižnica del izvršljive datoteke.
Druga pomanjkljivost statične knjižnice je ta, da če se statična knjižnica spremeni, je treba posodobiti tudi izvedljivo sklicevanje nanjo.
Dinamične knjižnice
Dinamična knjižnica je znana tudi kot »knjižnica v skupni rabi«. V sistemu Windows ima dinamična knjižnica končnico ».dll« (dinamično povezana knjižnica). V Linuxu ima dinamična knjižnica razširitev ».so« (predmet v skupni rabi).
Dinamična knjižnica je knjižnica, ki je sestavljena iz rutin, ki se v času nalaganja naložijo v aplikacijo. Ko se aplikacija sklicuje na dinamično knjižnico, knjižnica ne postane del aplikacije, ampak ostane kot samostojna enota.
Dinamična knjižnica ima prednost, da si lahko en izvod knjižnice deli več aplikacij in s tem prihrani prostor. Še ena prednost je ta, da se dinamična knjižnica, ker je ločena enota, ne spremeni, če se dinamična knjižnica spremeni.
Edina pomanjkljivost dinamične knjižnice je ta, da zahteva ločen program za nalaganje in sklicevanje na knjižnico, ki je lahko okorna. Da bi rešili to težavo, uporabimo rutino »uvozi knjižnico«.
An uvozna knjižnica je mehanizem, ki v program samodejno naloži in uporablja dinamično knjižnico. V sistemu Windows ima knjižnica za uvoz majhno statično knjižnico (.lib) z enakim imenom kot datoteka .dll in je v času prevajanja povezana s programom.
Ko je to končano, se dinamična knjižnica uporablja kot statična knjižnica. V operacijskem sistemu Linux dinamična knjižnica ali datoteka v skupni rabi (.so) deluje kot knjižnica za uvoz in tudi kot dinamična knjižnica. Večina povezovalcev v operacijskem sistemu Linux lahko zgradi knjižnico za uvoz dinamične knjižnice.
Kako namestiti in uporabljati knjižnice C ++
Oglejmo si nekaj korakov, ki jih moramo upoštevati za namestitev teh knjižnic in njihovo uporabo v naši aplikaciji.
# 1) Pridobitev knjižnice
Za uporabo knjižnice v naši aplikaciji moramo najprej pridobiti knjižnico. Knjižnica je morda vnaprej prevedena - v takem primeru moramo le prenesti knjižnico za operacijski sistem. Če knjižnica ni vnaprej prevedena, moramo prenesti izvorno kodo in jo sestaviti na našem računalniku.
V oknih imajo knjižnice običajno razširitev .zip, medtem ko je v operacijskem sistemu Linux paket knjižnic distribuiran kot '.RPM'.
# 2) Namestite knjižnico
Naslednji korak, ko dobimo knjižnico, je namestitev knjižnice. Namestitev v sistem Windows je tako preprosta kot razpakiranje vsebine knjižnice v mapi. V Linuxu lahko za namestitev knjižnice prikličemo upravitelja paketov.
# 3) Vključite pot knjižnice za prevajalnik
Pot knjižnice moramo nastaviti tako, da prevajalnik ve, kje naj išče datoteke knjižnice. To je lahko imenik ‘include’ v sistemu Windows ali ‘/ usr / include’ v sistemu Linux.
# 4) Povežite pot knjižnice
Ta korak se izvede tako, da povezovalec ve natančno pot knjižnic, ki jih mora povezati med postopkom povezovanja. Običajno obstaja mapa ‘/ lib’ v sistemu Windows ali mapa ‘/ usr / lib’ v sistemu Linux, ki vsebuje vse knjižnice.
Ko je knjižnica nameščena, prevajalnik in povezovalnik poznata pot knjižnice do uporabe in knjižnica je pripravljena za uporabo. V našem programu se lahko sklicujemo na funkcionalnost knjižnice in ker smo v naš program vključili glave datoteke, bo prevajalnik lahko prevedel funkcionalnost.
Ker programerji za razvoj večinoma uporabljajo IDE-je, v sami IDE določimo pot knjižnice.
Standardne glave / knjižnice v jeziku C ++
Pogovorimo se o nekaterih standardnih glavah ali knjižnicah, ki jih uporablja jezik C ++. O teh glavah smo že razpravljali v njihovih temah v naših vajah za C ++.
C Standardna knjižnica
Standard ANSI C določa C standardna knjižnica ali libc ki deluje kot standardna knjižnica za programski jezik C. C ++ vključuje vsako glavo iz standardne knjižnice C pod drugim imenom, tako da na začetku doda 'c' in na koncu odstrani '.h'. Tako bo glava xxx.h v jeziku C postala 'cxxx' v standardu C ++.
Standardna knjižnica C med drugim ponuja funkcije, povezane z makri, obdelavo nizov, matematičnimi izračuni, definicijami vrst, obdelavo vhodnih / izhodnih podatkov, upravljanjem pomnilnika itd.
Preveri tukaj za več informacij o knjižnici C Standard.
splošno
Splošna knjižnica C ++ vključuje naslednje glave, kot je prikazano spodaj.
Ime glave | Opis |
---|---|
Določa funkcionalnost korice. Na voljo od C ++ 11 naprej. | |
Algoritmi, ki jih uporabljajo številni vsebniki, so definirani v tej glavi. | |
Vključuje časovne elemente, kot so std :: chrono :: time_point, std :: chrono :: duration in ure. | |
Ta glava ponuja funkcije funkcij, ki se uporabljajo s splošnimi algoritmi. | |
Vsebuje razrede in predloge za iteratorje. | |
Določa funkcionalnost upravljanja pomnilnika v jeziku C ++. | |
Določa standardne razrede izjem, vključno s std :: logic_error in std :: runtime_error, ki izhajata iz std :: izjeme. | |
Razredi predloge, kot je std :: pair itd., Ali prostori imen, kot je std :: rel_ops, so definirani v tej glavi. |
Tokovi in vhod / izhod
Ime glave | Opis |
---|---|
Vsebuje funkcionalnost razreda predloge std :: ostream in drugih podpornih razredov za izhod. | |
Ponuja funkcionalnost za vhod-izhod na osnovi datotek. | |
Vsebuje funkcionalnost za oblikovanje izhodov, kot so natančnost, osnova itd. | |
Vsebuje osnovno funkcionalnost za operacije iostream. | |
Ponuja nadaljnje izjave več predlog razredov, povezanih z V / I. | |
Ponuja C ++ vhodne in izhodne osnove. | |
Vsebuje funkcionalnost razreda predloge std :: istream in drugih podpornih razredov za vnos. | |
Določa razred predloge std :: stringstream in druge podporne razrede, ki se uporabljajo za manipulacijo nizov. | |
Vsebuje funkcionalnost za branje in pisanje v / iz nekaterih vrst zaporedij znakov, kot so zunanje datoteke ali nizi. |
Jezikovna podpora
Ime glave | Opis |
---|---|
Izvaja funkcionalnost za std :: queue, enojno čakalno vrsto in std :: priority_queue, prioritetno čakalno vrsto. | |
Ta glava vsebuje različne vrste in funkcije za obdelavo izjem, vključno z osnovnim razredom za vse izjeme, std :: izjeme. | |
Ta glava vsebuje razred predloge std :: numeric_limits, ki se uporablja za opis temeljnih numeričnih lastnosti | |
Vsebuje operaterje new in delete ter druge funkcije, povezane z osnovami upravljanja pomnilnika C ++. | |
Ponuja pripomočke za delo s podatki o času izvajanja C ++. |
Strune
Ime glave | Opis |
---|---|
Ta glava vsebuje standardne razrede nizov in predloge v jeziku C ++. | |
To je novo v jeziku C ++ 11. Ponuja pripomočke za nize, ki se ujemajo z vzorci z uporabo regularnih izrazov. |
Lokalizacija
Ime glave | Opis |
---|---|
Ta glava ima funkcijo jezika. Določa razrede in razglasi funkcije, ki zajemajo in manipulirajo s podatki, značilnimi za lokalizacijo. | |
Vsebuje fasete za pretvorbo kode za različna kodiranja znakov. |
Zabojniki
Ime glave | Opis |
---|---|
Vsebuje funkcionalnost za std :: array, vsebnik za matriko določene velikosti. Nov dodatek v C ++ 11 in TR1. | |
Specializirani razred vsebnika std :: bitset, bit array. | |
Vsebuje funkcionalnost za std :: deque, dvojno čakalno vrsto. | |
Glava za std :: forward_list, enojno povezan seznam. Nov dodatek v C ++ 11 in TR1. | |
Vsebuje funkcionalnost za std :: list, dvojno povezan seznam. | |
Vsebuje funkcionalnost za std :: map in std :: multimap, razvrščeno asociativno matriko in multimap. | |
Ima glavo za std :: set in std :: multiset, razvrščene asociativne vsebnike ali nabore. | |
Ponuja razred pretvornika vsebnika std :: stack, sklad. | |
Ta glava vsebuje funkcije std :: unordered_map in std :: unordered_multimap, hash tabele. Novo v C ++ 11 in TR1. | |
Ponuja funkcionalnost za std :: unordered_set in std :: unordered_multiset. Novo v C ++ 11 in TR1. | |
Ponuja funkcionalnost za std :: vector, dinamično matriko. |
Knjižnica za podporo niti
Ime glave | Opis |
---|---|
Nov razred in imenski prostor za delo z nitmi od C ++ 11 dalje. | |
Nov dodatek k C ++ 11 naprej. Zagotavlja mutekse, zaklepe, enkratni klic itd., Ki so vsi mehanizmi za medsebojno izključitev. | |
Vsebuje funkcionalnost za spremenljivke Condition, ki zagotavljajo sinhronizacijske primitive, ki se uporabljajo za blokiranje niti, dokler druga nit ne sporoči, da je izpolnjen neki pogoj, ali dokler ni dosežen sistemski čas. Nov dodatek za C ++ 11 naprej. | |
Ta glava vsebuje komponente, s katerimi lahko program C ++ pridobi eno nit in rezultat (vrednost ali izjema) iz funkcije, ki se je izvajala v isti niti ali drugi niti. |
Numerična knjižnica
Ime glave | Opis |
---|---|
V glavi so opisane različne funkcije za predstavitev in upravljanje kompleksnih števil. Ima tudi predlogo razreda za kompleksna števila | |
Funkcionalnost za generiranje (psevdo-) naključnih števil | |
Ta glava vsebuje - pet predlog razredov (valarray, slice_array, gslice_array, mask_array in indirect_array), - dva razreda (rezina in rezina), - Niz povezanih predlog funkcije za predstavitev in upravljanje nizov vrednosti. | |
Vsebuje splošne numerične operacije. |
Zaključek
Podrobno smo razpravljali o knjižnicah C ++, njihovih vrstah in korakih za namestitev in nastavitev knjižnice.
Ugotovili smo, da standardna knjižnica C ++ vsebuje različne glave, ki ponujajo različne funkcionalnosti. Te standardne glave knjižnic lahko uporabimo za razvoj številnih aplikacij v jeziku C ++.
=> Tukaj preverite VSE Vadnice za C ++.
Priporočeno branje
- Knjižnične funkcije v jeziku C ++
- Knjižnica standardnih predlog (STL): kratek uvod
- Popoln pregled C ++
- 70+ NAJBOLJŠIH vaj za C ++ za BREZPLAČNO učenje C ++ programiranja
- Oblikovanje V / I: funkcije printf, sprintf, scanf v C ++
- Osnovne vhodno / izhodne operacije v jeziku C ++
- Funkcije niza v jeziku C ++: getline, podniz, dolžina niza in drugo