c libraries how install
Acest tutorial pentru biblioteci C ++ va explica ce sunt bibliotecile din C ++, tipurile lor, împreună cu instalarea și utilizarea unei biblioteci standard C ++:
O bibliotecă poate fi definită ca un pachet de cod sau funcții care poate fi reutilizat. Diverse aplicații pot folosi aceeași bibliotecă din nou și din nou. Având biblioteci, obținem reutilizarea, adică unul dintre principiile programării orientate pe obiecte.
De exemplu, funcțiile matematice precum sin, cos, tan, abs etc. pot fi transformate într-o bibliotecă. Procedând astfel, nu trebuie să scriem aceste funcții din nou și din nou pentru fiecare aplicație. Putem doar să facem referire la bibliotecă și să refolosim codul în aplicațiile noastre.
=> Vizitați aici pentru a afla C ++ de la zero.
Ce veți învăța:
Biblioteci C ++
O bibliotecă C ++ constă de obicei din:
Un fișier antet: Aceasta definește funcționalitatea pe care biblioteca o oferă.
Un binar precompilat: Acest fișier conține implementarea efectivă a funcționalității. Această implementare este precompilată într-un limbaj mașină.
Bibliotecile sunt precompilate, deoarece nu există niciun motiv pentru a recompila bibliotecile, deoarece acestea se schimbă cu greu. În al doilea rând, întrucât bibliotecile precompilate sunt într-o formă de limbaj automat, acestea sunt securizate, deoarece nimeni nu le poate accesa direct. Astfel, bibliotecile sunt securizate.
În C ++ avem două tipuri de biblioteci:
- Biblioteci statice
- Biblioteci dinamice
Biblioteci statice
Bibliotecile statice sunt numite și Arhive. O bibliotecă statică este o bibliotecă care devine o parte a executabilului care o face referire. Astfel, atunci când dezvoltăm o aplicație și facem referire la o bibliotecă statică în ea, conținutul bibliotecii statice este înlocuit în aplicație.
Bibliotecile statice de pe Windows au de obicei o extensie „.lib” în timp ce cele de pe Linux au extensia „.a” (sau arhivă).
întrebări de interviu oracle pl sql pentru 8 ani de experiență
Un avantaj al unei biblioteci statice de referință a programului este că nu trebuie să distribuim biblioteca statică împreună cu executabilul. Acest lucru se datorează faptului că conținutul bibliotecii statice face parte din aplicații și nu este necesar să o furnizați separat.
Acest avantaj specific are ca rezultat un dezavantaj deoarece executabilul poate deveni voluminos și se pierde prea mult spațiu deoarece biblioteca face parte din executabil.
Un alt dezavantaj de a avea o bibliotecă statică este că, dacă biblioteca statică se schimbă, atunci referințele executabile trebuie actualizate.
Biblioteci dinamice
Biblioteca dinamică este, de asemenea, cunoscută sub numele de „Biblioteca partajată”. În Windows, biblioteca dinamică are extensia „.dll” (bibliotecă legată dinamic). Pe Linux, biblioteca dinamică are extensia „.so” (obiect partajat).
O bibliotecă dinamică este o bibliotecă care constă din rutine care sunt încărcate în aplicație în timpul rulării. Când o aplicație face referire la o bibliotecă dinamică, atunci biblioteca nu devine o parte a aplicației, dar rămâne ca o unitate separată.
Biblioteca dinamică are avantajul că o copie a bibliotecii poate fi partajată de multe aplicații, economisind astfel spațiu. Un alt avantaj este că, întrucât biblioteca dinamică este o unitate separată, executabilul aplicației nu se schimbă atunci când biblioteca dinamică se schimbă.
Singurul dezavantaj pe care îl are o bibliotecă dinamică este că necesită un program separat pentru încărcarea și referirea bibliotecii, care poate fi greoaie. Pentru a rezolva această problemă, folosim rutina „import bibliotecă”.
Un import bibliotecă este un mecanism care încarcă și folosește automat o bibliotecă dinamică în program. Pe Windows, biblioteca de import păstrează o mică bibliotecă statică (.lib) cu același nume ca fișierul .dll și este legată de program în momentul compilării.
Odată ce acest lucru este făcut, biblioteca dinamică este utilizată ca și cum ar fi o bibliotecă statică. Pe sistemul de operare Linux, biblioteca dinamică sau fișierul obiect partajat (.so) acționează ca o bibliotecă de import, precum și ca o bibliotecă dinamică. Majoritatea linkerelor de pe sistemul de operare Linux sunt capabile să construiască o bibliotecă de import pentru o bibliotecă dinamică.
Cum se instalează și se utilizează bibliotecile C ++
Să vedem câțiva pași pe care trebuie să-i urmăm pentru a instala aceste biblioteci și a le folosi în aplicația noastră.
# 1) Achiziționarea Bibliotecii
Pentru a utiliza biblioteca în aplicația noastră, trebuie mai întâi să achiziționăm biblioteca. Biblioteca poate fi precompilată - într-un astfel de caz trebuie doar să descărcăm biblioteca pentru sistemul de operare. Dacă biblioteca nu este precompilată, atunci trebuie să descărcăm codul sursă și să-l compilăm pe computerul nostru.
Pe Windows, bibliotecile au de obicei extensia .zip în timp ce pe sistemul de operare Linux pachetul de bibliotecă este distribuit ca „.RPM”.
# 2) Instalați biblioteca
Următorul pas odată ce obținem biblioteca este instalarea bibliotecii. Instalarea pe Windows este la fel de simplă ca dezarhivarea conținutului bibliotecii într-un folder. Pe Linux, putem invoca managerul de pachete pentru a instala biblioteca.
# 3) Includeți calea Bibliotecii pentru compilator
Trebuie să setăm calea bibliotecii, astfel încât compilatorul să știe unde să caute fișierele bibliotecii. Acesta poate fi directorul „include” pe Windows sau „/ usr / include” pe Linux.
# 4) Conectați calea bibliotecii
Acest pas este realizat astfel încât linker-ul să cunoască calea exactă a bibliotecilor pe care trebuie să le lege în timpul procesului de linking. De obicei, există folderul „/ lib” pe Windows sau folderul „/ usr / lib” pe Linux care conține toate bibliotecile.
Odată ce biblioteca este instalată, compilatorul și linker-ul cunosc calea bibliotecii de utilizat și biblioteca este gata de utilizare. În programul nostru, ne putem referi la funcționalitatea bibliotecii și, deoarece am inclus fișierele antet în programul nostru, compilatorul va putea compila funcționalitatea.
Întrucât programatorii folosesc majoritatea IDE pentru dezvoltare, specificăm calea bibliotecii în IDE în sine.
Anteturi / biblioteci standard în C ++
Să discutăm câteva dintre anteturile sau bibliotecile standard pe care le folosește limbajul C ++. Am discutat deja aceste anteturi în subiectele lor respective în tutorialele noastre C ++.
Biblioteca standard C
Standardul ANSI C specifică Biblioteca standard C sau libc care acționează ca biblioteca standard pentru limbajul de programare C. C ++ include fiecare antet din biblioteca standard C sub un nume diferit adăugând „c” la început și eliminând „.h” la sfârșit. Astfel, antetul xxx.h în C va deveni „cxxx” în standardul C ++.
Biblioteca standard C oferă funcționalitatea legată de macro-uri, gestionarea șirurilor, definiții tip de calcule matematice, procesare intrare / ieșire, gestionare memorie etc., printre altele.
Verifica Aici pentru mai multe informații despre Biblioteca standard C.
general
Biblioteca generală C ++ include următoarele anteturi, așa cum se arată mai jos.
Numele antetului | Descriere |
---|---|
Definește funcționalitatea pentru tuplu. Disponibil începând cu C ++ 11. | |
Algoritmii utilizați de mai multe containere sunt definiți în acest antet. | |
Include elemente de timp precum std :: chrono :: time_point, std :: chrono :: duration și ceasuri. | |
Acest antet oferă funcții obiecte pentru a fi utilizate cu algoritmi generali. | |
Conține clase și șabloane pentru iteratori. | |
Definește funcționalitatea de gestionare a memoriei în C ++. | |
Definește clase de excepție standard, inclusiv std :: logic_error și std :: runtime_error, ambele derivate din std :: exception. | |
Clasele de șabloane precum std :: pair etc. sau spațiile de nume precum std :: rel_ops sunt definite în acest antet. |
Fluxuri și intrare / ieșire
Numele antetului | Descriere |
---|---|
Conține funcționalitatea clasei de șabloane std :: ostream și a altor clase de suport pentru ieșire. | |
Oferă funcționalitate pentru intrare-ieșire bazată pe fișiere. | |
Conține funcționalități pentru formatarea ieșirilor precum precizie, bază etc. | |
Conține funcționalități de bază pentru operațiuni iostream. | |
Oferă declarații către mai multe șabloane de clasă legate de I / O. | |
Oferă elemente fundamentale de intrare și ieșire C ++. | |
Conține funcționalitatea clasei de șabloane std :: istream și alte clase de suport pentru intrare. | |
Definește clasa șablonului std :: stringstream și alte clase de suport utilizate pentru manipularea șirurilor. | |
Conține funcționalitate pentru citirea și scrierea în / de la anumite tipuri de secvențe de caractere, cum ar fi fișiere externe sau șiruri. |
Suport lingvistic
Numele antetului | Descriere |
---|---|
Implementează funcționalitatea pentru std :: queue, o coadă cu un singur punct și std :: priority_queue, o coadă prioritară. | |
Acest antet conține diferite tipuri și funcții pentru gestionarea excepțiilor, inclusiv clasa de bază pentru toate excepțiile, std :: exception. | |
Acest antet conține clasa șablonului std :: numeric_limits utilizate pentru descrierea proprietăților numerice fundamentale | |
Conține operatori noi și de ștergere și alte funcții legate de fundamentele gestionării memoriei C ++. | |
Oferă facilități pentru lucrul cu informații despre tipul de execuție C ++. |
Siruri de caractere
Numele antetului | Descriere |
---|---|
Acest antet conține clasele de șiruri standard și șabloane în C ++. | |
Acest lucru este nou în C ++ 11. Oferă utilități pentru șiruri de potrivire a modelelor folosind expresii regulate. |
Localizare
Numele antetului | Descriere |
---|---|
Acest antet are funcționalitate locală. Definește clase și declară funcții care încapsulează și manipulează informațiile specifice unei locații. | |
Conține fațete de conversie a codului pentru diverse codificări de caractere. |
Containere
Numele antetului | Descriere |
---|---|
Conține funcționalitate pentru std :: array, un container pentru un array de dimensiuni fixe. Adăugare nouă în C ++ 11 și TR1. | |
Clasa de containere specializată std :: bitset, o matrice de biți. | |
Conține funcționalitate pentru std :: deque, o coadă dublă. | |
Antet pentru std :: forward_list, o listă legată individual. Adăugare nouă în C ++ 11 și TR1. | |
Conține funcționalitate pentru std :: list, o listă dublă legată. | |
Conține funcționalități pentru std :: map și std :: multimap, matrice asociativă sortată și multimap. | |
Are antetul pentru std :: set și std :: multiset, sortate containere sau seturi asociative. | |
Oferă clasa adaptorului containerului std :: stack, o stivă. | |
Acest antet conține std :: unordered_map și std :: unordered_multimap, funcționalitatea tabelelor hash. Nou în C ++ 11 și TR1. | |
Oferă funcționalitate pentru std :: unordered_set și std :: unordered_multiset. Nou în C ++ 11 și TR1. | |
Oferă funcționalitate pentru std :: vector, o matrice dinamică. |
Biblioteca de asistență a firelor
Numele antetului | Descriere |
---|---|
O nouă clasă și spațiu de nume pentru lucrul cu fire de la C ++ 11 în continuare. | |
Noua adăugare la C ++ 11 în continuare. Oferă mutexe, blocări, apeluri, etc., care sunt toate mecanismele de excludere reciprocă. | |
Conține funcționalitate pentru variabilele de condiții care furnizează primitive de sincronizare utilizate pentru a bloca un fir până când este notificat de un alt fir că este îndeplinită o anumită condiție sau până când se atinge ora sistemului. Noua adăugare pentru C ++ 11 în continuare. | |
Acest antet are componentele pe care un program C ++ le poate folosi pentru a prelua într-un fir și rezultatul (valoare sau excepție) dintr-o funcție care a rulat în același fir sau într-un alt fir. |
Biblioteca numerică
Numele antetului | Descriere |
---|---|
Antetul descrie diverse funcții pentru reprezentarea și manipularea numerelor complexe. De asemenea, are un șablon de clasă pentru numere complexe | |
Funcționalitate pentru a genera (pseudo-) numere aleatorii | |
Acest antet conține - șabloane de cinci clase (valarray, slice_array, gslice_array, mask_array și indirect_array), - două clase (felie și gslice), - O serie de șabloane de funcții conexe pentru reprezentarea și manipularea matricilor de valori. | |
Conține operații numerice generale. |
Concluzie
Am discutat în detaliu bibliotecile C ++, împreună cu tipurile lor și pașii de instalare și configurare a bibliotecii.
Am aflat că biblioteca standard C ++ conține diverse antete care oferă funcționalități diferite. Putem folosi aceste antete de bibliotecă standard pentru a dezvolta o varietate de aplicații în C ++.
=> Verificați TOATE tutorialele C ++ aici.
Lectură recomandată
- Funcții de bibliotecă în C ++
- Biblioteca de șabloane standard (STL): o scurtă introducere
- O prezentare completă a C ++
- 70+ BEST Tutoriale C ++ Pentru a învăța programarea C ++ GRATUIT
- Formatarea I / O: printf, sprintf, scanf Funcții în C ++
- Operațiuni de intrare / ieșire de bază în C ++
- Funcțiile șirului în C ++: getline, sub șir, lungimea șirului și altele