c libraries how install
Tento výukový program C ++ Libraries vysvětlí, co jsou knihovny v C ++, jejich typy spolu s instalací a použitím standardní knihovny C ++:
Knihovnu lze definovat jako balíček kódu nebo funkcí, které lze opakovaně použít. Různé aplikace mohou znovu a znovu používat stejnou knihovnu. Tím, že máme knihovny, dosáhneme opětovné použitelnosti, tj. Jednoho z principů objektově orientovaného programování.
Například, matematické funkce jako sin, cos, tan, abs atd. mohou být zpracovány do knihovny. Tímto způsobem nemusíme tyto funkce psát znovu a znovu pro každou aplikaci. Můžeme jen odkázat na knihovnu a znovu použít kód v našich aplikacích.
=> Navštivte zde a dozvíte se C ++ od nuly.
Co se naučíte:
C ++ knihovny
Knihovna C ++ se obvykle skládá z:
Hlavičkový soubor: To definuje funkce, které knihovna nabízí.
Předkompilovaný binární soubor: Tento soubor obsahuje skutečnou implementaci této funkce. Tato implementace je předkompilována do jazyka stroje.
Knihovny jsou předkompilovány, protože není důvod je znovu kompilovat, protože se téměř nemění. Zadruhé, protože předkompilované knihovny jsou ve formě strojového jazyka, jsou zabezpečeny, protože k nim nikdo nemá přímý přístup. Tím jsou knihovny zabezpečeny.
V C ++ máme dva typy knihoven:
- Statické knihovny
- Dynamické knihovny
Statické knihovny
Statické knihovny se také nazývají archivy. Statická knihovna je knihovna, která se stává součástí spustitelného souboru, který na něj odkazuje. Když tedy vyvíjíme aplikaci a odkazujeme na ni statickou knihovnu, obsah statické knihovny se v aplikaci nahradí.
Statické knihovny v systému Windows mají obvykle příponu „.lib“, zatímco knihovny v systému Linux mají příponu „.a“ (nebo archiv).
otevřený systém správy relační databáze
Jednou z výhod statické knihovny referencí programu je, že nemusíme distribuovat statickou knihovnu spolu se spustitelným souborem. Je to proto, že obsah statické knihovny je součástí aplikací a není třeba jej uvádět samostatně.
Tato konkrétní výhoda má za následek nevýhodu, protože spustitelný soubor se může stát objemným a zbytečně se plýtvá prostorem, protože knihovna je součástí spustitelného souboru.
Další nevýhodou statické knihovny je, že pokud se změní statická knihovna, je třeba aktualizovat také spustitelný odkaz, který na ni odkazuje.
Dynamické knihovny
Dynamická knihovna je známá také jako „sdílená knihovna“. Ve Windows má dynamická knihovna příponu „.dll“ (dynamicky propojená knihovna). V systému Linux má dynamická knihovna příponu „.so“ (sdílený objekt).
Dynamická knihovna je knihovna, která se skládá z rutin, které se načítají do aplikace za běhu. Když aplikace odkazuje na dynamickou knihovnu, pak se knihovna nestane součástí aplikace, ale zůstane jako samostatná jednotka.
Dynamická knihovna má tu výhodu, že jednu kopii knihovny může sdílet mnoho aplikací, což šetří místo. Ještě další výhodou je, že jelikož je dynamická knihovna samostatnou jednotkou, spustitelný soubor aplikace se při změně dynamické knihovny nezmění.
Jedinou nevýhodou, kterou má dynamická knihovna, je to, že vyžaduje samostatný program pro načtení a odkazování na knihovnu, což může být těžkopádné. K vyřešení tohoto problému používáme rutinu „import knihovny“.
An importovat knihovnu je mechanismus, který do programu automaticky načte a použije dynamickou knihovnu. V systému Windows udržuje knihovna pro import malou statickou knihovnu (.lib) se stejným názvem jako soubor DLL a je propojena s programem v době kompilace.
Jakmile to provedete, dynamická knihovna se použije, jako by se jednalo o statickou knihovnu. V operačním systému Linux funguje dynamická knihovna nebo soubor sdíleného objektu (.so) jako knihovna pro import i jako dynamická knihovna. Většina linkerů v systému Linux OS je schopna vytvořit knihovnu pro import pro dynamickou knihovnu.
Jak instalovat a používat knihovny C ++
Podívejme se na některé kroky, které musíme dodržet při instalaci těchto knihoven a jejich použití v naší aplikaci.
# 1) Získání knihovny
Abychom mohli knihovnu používat v naší aplikaci, musíme ji nejprve získat. Knihovna může být předkompilována - v takovém případě si stačí stáhnout knihovnu pro operační systém. Pokud knihovna není předkompilována, musíme si stáhnout zdrojový kód a zkompilovat jej na našem počítači.
V systému Windows mají knihovny obvykle příponu .zip, zatímco v operačním systému Linux je balíček knihovny distribuován jako „.RPM“.
# 2) Nainstalujte knihovnu
Dalším krokem, jakmile získáme knihovnu, je instalace knihovny. Instalace ve Windows je stejně jednoduchá jako rozbalení obsahu knihovny ve složce. V systému Linux můžeme vyvolat správce balíčků a nainstalovat knihovnu.
# 3) Zahrnout cestu knihovny pro kompilátor
Musíme nastavit cestu knihovny, aby překladač věděl, kde hledat soubory knihovny. Může to být adresář „include“ ve Windows nebo „/ usr / include“ v systému Linux.
# 4) Propojte cestu knihovny
Tento krok se provádí tak, že linker zná přesnou cestu knihoven, které má během procesu propojení propojit. Obvykle existuje složka „/ lib“ v systému Windows nebo složka „/ usr / lib“ v systému Linux, která obsahuje všechny knihovny.
Jakmile je knihovna nainstalována, kompilátor a linker znají cestu knihovny k použití a knihovna je připravena k použití. V našem programu můžeme odkázat na funkčnost knihovny a protože jsme do našeho programu zahrnuli hlavičkové soubory, kompilátor bude schopen zkompilovat funkčnost.
Protože programátoři pro vývoj většinou používají IDE, určujeme cestu ke knihovně v samotném IDE.
Standardní záhlaví / knihovny v C ++
Pojďme diskutovat o některých standardních záhlavích nebo knihovnách, které jazyk C ++ používá. O těchto záhlavích jsme již diskutovali v příslušných tématech v našich C ++ tutoriálech.
C Standardní knihovna
Standard ANSI C specifikuje C standardní knihovna nebo libc , která funguje jako standardní knihovna pro programovací jazyk C. C ++ zahrnuje každou hlavičku ze standardní knihovny C pod jiným názvem přidáním „c“ na začátku a odebráním „.h“ na konci. Záhlaví xxx.h v jazyce C se tedy ve standardu C ++ změní na „cxxx“.
Standardní knihovna C poskytuje mimo jiné funkce související s makry, zpracováním řetězců, matematickými výpočty definic typů, zpracováním vstupů a výstupů, správou paměti atd.
Šek tady pro více informací o C Standard Library.
Všeobecné
Obecná knihovna C ++ obsahuje následující záhlaví, jak je znázorněno níže.
Název záhlaví | Popis |
---|---|
Definuje funkčnost n-tice. K dispozici od C ++ 11 a novějších. | |
Algoritmy používané mnoha kontejnery jsou definovány v této hlavičce. | |
Zahrnuje časové prvky jako std :: chrono :: time_point, std :: chrono :: trvání a hodiny. | |
Tato hlavička poskytuje objekty funkcí, které mají být použity s obecnými algoritmy. | |
Obsahuje třídy a šablony pro iterátory. | |
Definuje funkce správy paměti v C ++. | |
Definuje standardní třídy výjimek včetně std :: logic_error a std :: runtime_error, oba odvozené od std :: výjimky. | |
V této hlavičce jsou definovány třídy šablon jako std :: pair atd. Nebo jmenné prostory jako std :: rel_ops. |
Proudy a vstup / výstup
Název záhlaví | Popis |
---|---|
Obsahuje funkce třídy šablony std :: ostream a dalších podpůrných tříd pro výstup. | |
Poskytuje funkce pro souborový vstup-výstup. | |
Obsahuje funkce pro výstupní formátování, jako je přesnost, základna atd. | |
Obsahuje základní funkce pro iostream operace. | |
Poskytuje dopředu deklarace několika šablon tříd souvisejících s I / O. | |
Poskytuje C ++ vstupní a výstupní základy. | |
Obsahuje funkce třídy šablony std :: istream a dalších podpůrných tříd pro vstup. | |
Definuje třídu šablony std :: stringstream a další podpůrné třídy používané pro manipulaci s řetězci. | |
Obsahuje funkce pro čtení a zápis do / z určitých typů posloupností znaků, jako jsou externí soubory nebo řetězce. |
Jazyková podpora
Jméno-hlavičky | Popis |
---|---|
Implementuje funkce pro std :: queue, frontu s jedním koncem a std :: priority_queue, prioritní frontu. | |
Tato hlavička obsahuje různé typy a funkce pro zpracování výjimek, včetně základní třídy pro všechny výjimky, std :: výjimka. | |
Tato hlavička obsahuje třídu šablony std :: numeric_limits používanou pro popis základních numerických vlastností | |
Obsahuje nové operátory a mazání a další funkce související se základy správy paměti C ++. | |
Poskytuje zařízení pro práci s informacemi o typu běhu v C ++. |
Struny
Název záhlaví | Popis |
---|---|
Tato hlavička obsahuje standardní třídy řetězců a šablony v C ++. | |
To je nové v C ++ 11. Poskytuje nástroje pro řetězce odpovídající vzorům pomocí regulárních výrazů. |
Lokalizace
Jméno-hlavičky | Popis |
---|---|
Tato hlavička má funkce národního prostředí. Definuje třídy a deklaruje funkce, které zapouzdřují a manipulují s informacemi specifickými pro národní prostředí. | |
Obsahuje fazety pro převod kódu pro různá kódování znaků. |
Kontejnery
Jméno-hlavičky | Popis |
---|---|
Obsahuje funkce pro std :: array, kontejner pro pole pevné velikosti. Nový přírůstek v C ++ 11 a TR1. | |
Specializovaná třída kontejneru std :: bitset, bitové pole. | |
Obsahuje funkce pro std :: deque, dvojitou frontu. | |
Záhlaví std :: forward_list, jednotlivě propojený seznam. Nový přírůstek v C ++ 11 a TR1. | |
Obsahuje funkce pro std :: list, dvojnásobně propojený seznam. | |
Obsahuje funkce pro std :: map a std :: multimap, seřazené asociativní pole a multimapu. | |
Má záhlaví pro std :: set a std :: multiset, seřazené asociativní kontejnery nebo sady. | |
Poskytuje třídu adaptéru kontejneru std :: stack, zásobník. | |
Tato hlavička obsahuje std :: unordered_map a std :: unordered_multimap, funkce hash tabulek. Novinka v C ++ 11 a TR1. | |
Poskytuje funkce pro std :: unordered_set a std :: unordered_multiset. Novinka v C ++ 11 a TR1. | |
Poskytuje funkce pro std :: vector, dynamické pole. |
Knihovna podpory vláken
Název záhlaví | Popis |
---|---|
Nová třída a jmenný prostor pro práci s vlákny od C ++ 11 a novější. | |
Nový přírůstek k C ++ 11 a novějším. Poskytuje mutexy, zámky, jednorázové volání atd., Což jsou všechny mechanismy vzájemného vyloučení. | |
Obsahuje funkce pro proměnné Podmínky, které poskytují synchronizační primitivy používané k blokování vlákna, dokud není oznámeno jiným vláknem, že je splněna nějaká podmínka, nebo dokud není dosažen systémový čas. Nový přírůstek pro C ++ 11 a novější. | |
Tato hlavička obsahuje komponenty, které program C ++ může použít k načtení v jednom vlákně, a výsledek (hodnotu nebo výjimku) z funkce, která byla spuštěna ve stejném vlákně nebo jiném vlákně. |
Numerická knihovna
Název záhlaví | Popis |
---|---|
Záhlaví popisuje různé funkce pro reprezentaci a manipulaci se složitými čísly. Má také šablonu třídy pro komplexní čísla | |
Funkce pro generování (pseudo) náhodných čísel | |
Tato hlavička obsahuje - pět třídních šablon (valarray, slice_array, gslice_array, mask_array a nepřímý_array), - dvě třídy (plátek a gslice), - Série souvisejících šablon funkcí pro reprezentaci a manipulaci s poli hodnot. | |
Obsahuje obecné číselné operace. |
Závěr
Podrobně jsme diskutovali o knihovnách C ++ spolu s jejich typy a kroky instalace a nastavení knihovny.
Zjistili jsme, že standardní knihovna C ++ obsahuje různé záhlaví, která poskytují různé funkce. Tyto standardní záhlaví knihoven můžeme použít k vývoji různých aplikací v C ++.
=> Zkontrolujte VŠECHNY výukové programy pro C ++ zde.
Doporučené čtení
- Funkce knihovny v C ++
- Standard Template Library (STL): A Brief Introduction
- Kompletní přehled C ++
- 70+ NEJLEPŠÍCH C ++ návodů, jak se naučit programování v C ++ ZDARMA
- Formátování I / O: printf, sprintf, scanf Funkce v C ++
- Základní operace vstupu / výstupu v C ++
- Řetězcové funkce v C ++: getline, podřetězec, délka řetězce a další