c libraries how install
Questo tutorial sulle librerie C ++ spiegherà cosa sono le librerie in C ++, i loro tipi insieme all'installazione e all'uso di una libreria standard C ++:
Una libreria può essere definita come un pacchetto di codice o funzioni riutilizzabile. Diverse applicazioni possono utilizzare la stessa libreria ancora e ancora. Avendo le librerie, otteniamo la riusabilità, ovvero uno dei principi della programmazione orientata agli oggetti.
Per esempio, funzioni matematiche come sin, cos, tan, abs, ecc. possono essere trasformate in una libreria. In questo modo non dobbiamo scrivere queste funzioni ancora e ancora per ogni applicazione. Possiamo semplicemente fare riferimento alla libreria e riutilizzare il codice nelle nostre applicazioni.
=> Visita qui per imparare C ++ da zero.
Cosa imparerai:
Librerie C ++
Una libreria C ++ di solito è composta da:
Un file di intestazione: Questo definisce la funzionalità offerta dalla libreria.
Un binario precompilato: Questo file contiene l'effettiva implementazione della funzionalità. Questa implementazione è precompilata in un linguaggio macchina.
Le librerie sono precompilate poiché non vi è alcun motivo per ricompilare le librerie poiché difficilmente cambiano. In secondo luogo, poiché le librerie precompilate sono in un formato in linguaggio macchina, sono protette poiché nessuno può accedervi direttamente. In questo modo le biblioteche sono protette.
In C ++ abbiamo due tipi di librerie:
- Librerie statiche
- Librerie dinamiche
Librerie statiche
Le biblioteche statiche sono anche chiamate archivi. Una libreria statica è una libreria che diventa parte dell'eseguibile che le fa riferimento. Pertanto, quando sviluppiamo un'applicazione e facciamo riferimento a una libreria statica al suo interno, il contenuto della libreria statica viene sostituito nell'applicazione.
Le librerie statiche su Windows hanno solitamente l'estensione “.lib” mentre quelle su Linux hanno estensione “.a” (o archivio).
i fornitori di cloud computing offrono i loro servizi come file
Un vantaggio di avere una libreria statica di riferimento del programma è che non dobbiamo distribuire la libreria statica insieme all'eseguibile. Questo perché il contenuto della libreria statica fa parte delle applicazioni e non è necessario fornirlo separatamente.
Questo vantaggio specifico si traduce in uno svantaggio in quanto l'eseguibile può diventare ingombrante e viene sprecato troppo spazio poiché la libreria fa parte dell'eseguibile.
Un altro svantaggio di avere una libreria statica è che se la libreria statica cambia, anche l'eseguibile che fa riferimento a essa deve essere aggiornato.
Librerie dinamiche
La libreria dinamica è anche nota come 'libreria condivisa'. In Windows, la libreria dinamica ha l'estensione '.dll' (libreria collegata dinamicamente). Su Linux, la libreria dinamica ha l'estensione “.so” (oggetto condiviso).
Una libreria dinamica è una libreria costituita da routine che vengono caricate nell'applicazione in fase di esecuzione. Quando un'applicazione fa riferimento a una libreria dinamica, la libreria non diventa parte dell'applicazione ma rimane un'unità separata.
La libreria dinamica ha il vantaggio che una copia della libreria può essere condivisa da molte applicazioni, risparmiando così spazio. Ancora un altro vantaggio è che, poiché la libreria dinamica è un'unità separata, l'eseguibile dell'applicazione non cambia quando la libreria dinamica cambia.
L'unico svantaggio di una libreria dinamica è che richiede un programma separato per caricare e fare riferimento alla libreria che può essere ingombrante. Per risolvere questo problema, utilizziamo la routine 'import library'.
Un libreria di importazione è un meccanismo che carica e utilizza automaticamente una libreria dinamica nel programma. Su Windows, la libreria di importazione mantiene una piccola libreria statica (.lib) con lo stesso nome del file .dll ed è collegata al programma in fase di compilazione.
Fatto ciò, la libreria dinamica viene utilizzata come se fosse una libreria statica. Sul sistema operativo Linux, la libreria dinamica o il file oggetto condiviso (.so) funge da libreria di importazione oltre che da libreria dinamica. La maggior parte dei linker sul sistema operativo Linux è in grado di creare una libreria di importazione per una libreria dinamica.
Come installare e utilizzare le librerie C ++
Vediamo alcuni dei passaggi che dobbiamo seguire per installare queste librerie e utilizzarle nella nostra applicazione.
# 1) Acquisizione della libreria
Per poter utilizzare la libreria nella nostra applicazione, dobbiamo prima acquisire la libreria. La libreria può essere precompilata - in tal caso è sufficiente scaricare la libreria per il sistema operativo. Se la libreria non è precompilata, allora dobbiamo scaricare il codice sorgente e compilarlo sulla nostra macchina.
Su Windows, le librerie di solito hanno l'estensione .zip mentre sul sistema operativo Linux il pacchetto della libreria è distribuito come '.RPM'.
# 2) Installa la libreria
Il passaggio successivo una volta ottenuta la libreria è installare la libreria. L'installazione su Windows è semplice come decomprimere il contenuto della libreria in una cartella. Su Linux, possiamo invocare il gestore di pacchetti per installare la libreria.
# 3) Includere il percorso della libreria per il compilatore
Dobbiamo impostare il percorso della libreria in modo che il compilatore sappia dove cercare i file della libreria. Può essere la directory 'include' su Windows o '/ usr / include' su Linux.
# 4) Collega il percorso della libreria
Questo passaggio viene eseguito in modo che il linker conosca il percorso esatto delle librerie che deve collegare durante il processo di collegamento. Di solito, c'è la cartella '/ lib' su Windows o la cartella '/ usr / lib' su Linux che contiene tutte le librerie.
Una volta installata la libreria, il compilatore e il linker conoscono il percorso della libreria da utilizzare e la libreria è pronta per l'uso. Nel nostro programma, possiamo fare riferimento alla funzionalità della libreria e, poiché abbiamo incluso i file di intestazione nel nostro programma, il compilatore sarà in grado di compilare la funzionalità.
Poiché i programmatori utilizzano principalmente IDE per lo sviluppo, specifichiamo il percorso della libreria nell'IDE stesso.
Intestazioni / librerie standard in C ++
Parliamo di alcune delle intestazioni o delle librerie standard utilizzate dal linguaggio C ++. Abbiamo già discusso queste intestazioni nei rispettivi argomenti nei nostri tutorial C ++.
Libreria standard C.
Lo standard ANSI C specifica il Libreria standard C. o libc che funge da libreria standard per il linguaggio di programmazione C. C ++ include ogni intestazione della libreria standard C con un nome diverso aggiungendo 'c' all'inizio e rimuovendo '.h' alla fine. Pertanto l'intestazione xxx.h in C diventerà 'cxxx' nello standard C ++.
La libreria standard C fornisce le funzionalità relative a macro, gestione di stringhe, calcoli matematici, definizioni dei tipi, elaborazione di input / output, gestione della memoria, ecc. Tra gli altri.
Dai un'occhiata Qui per ulteriori informazioni sulla libreria standard C.
generale
La libreria C ++ generale include le seguenti intestazioni come mostrato di seguito.
Nome dell'intestazione | Descrizione |
---|---|
Definisce la funzionalità per la tupla. Disponibile da C ++ 11 in poi. | |
Gli algoritmi utilizzati da molti contenitori sono definiti in questa intestazione. | |
Include elementi temporali come std :: chrono :: time_point, std :: chrono :: duration e orologi. | |
Questa intestazione fornisce oggetti funzione da utilizzare con algoritmi generali. | |
Contiene classi e modelli per iteratori. | |
Definisce la funzionalità di gestione della memoria in C ++. | |
Definisce le classi di eccezione standard tra cui std :: logic_error e std :: runtime_error, entrambe derivate da std :: exception. | |
Classi di template come std :: pair ecc. O spazi dei nomi come std :: rel_ops sono definiti in questa intestazione. |
Stream e input / output
Nome dell'intestazione | Descrizione |
---|---|
Contiene la funzionalità della classe template std :: ostream e altre classi di supporto per l'output. | |
Fornisce funzionalità per input-output basato su file. | |
Contiene funzionalità per la formattazione dell'output come precisione, base ecc. | |
Contiene le funzionalità di base per le operazioni iostream. | |
Fornisce dichiarazioni anticipate di diversi modelli di classe relativi a I / O. | |
Fornisce informazioni fondamentali su input e output in C ++. | |
Contiene funzionalità della classe template std :: istream e altre classi di supporto per l'input. | |
Definisce la classe template std :: stringstream e altre classi di supporto usate per la manipolazione delle stringhe. | |
Contiene funzionalità per la lettura e la scrittura in / da determinati tipi di sequenze di caratteri, come file o stringhe esterni. |
Supporto linguistico
Nome-dell'intestazione | Descrizione |
---|---|
Implementa la funzionalità per std :: queue, una coda single-ended, e std :: priority_queue, una coda prioritaria. | |
Questa intestazione contiene vari tipi e funzioni per la gestione delle eccezioni, inclusa la classe base per tutte le eccezioni, std :: exception. | |
Questa intestazione contiene la classe template std :: numeric_limits usata per descrivere le proprietà numeriche fondamentali | |
Contiene gli operatori new e delete e altre funzioni relative ai fondamenti della gestione della memoria C ++. | |
Fornisce servizi per lavorare con le informazioni sul tipo di runtime C ++. |
stringhe
Nome dell'intestazione | Descrizione |
---|---|
Questa intestazione contiene le classi e i modelli di stringhe standard in C ++. | |
Questa è una novità in C ++ 11. Fornisce utilità per stringhe di corrispondenza dei modelli utilizzando espressioni regolari. |
Localizzazione
Nome-dell'intestazione | Descrizione |
---|---|
Questa intestazione ha funzionalità di locale. Definisce classi e dichiara funzioni che incapsulano e manipolano le informazioni specifiche di una locale. | |
Contiene sfaccettature di conversione del codice per varie codifiche di caratteri. |
Contenitori
Nome-dell'intestazione | Descrizione |
---|---|
Contiene funzionalità per std :: array, un contenitore per un array di dimensioni fisse. Nuova aggiunta in C ++ 11 e TR1. | |
Classe container specializzata std :: bitset, un array di bit. | |
Contiene funzionalità per std :: deque, una coda a doppia estremità. | |
Intestazione per std :: forward_list, una lista collegata singolarmente. Nuova aggiunta in C ++ 11 e TR1. | |
Contiene funzionalità per std :: list, una lista doppiamente collegata. | |
Contiene funzionalità per std :: map e std :: multimap, array associativi ordinati e multimap. | |
Ha l'intestazione per std :: set e std :: multiset, contenitori o insiemi associativi ordinati. | |
Fornisce la classe dell'adattatore del contenitore std :: stack, uno stack. | |
Questa intestazione contiene std :: unordered_map e std :: unordered_multimap, funzionalità di tabelle hash. Novità in C ++ 11 e TR1. | |
Fornisce funzionalità per std :: unordered_set e std :: unordered_multiset. Novità in C ++ 11 e TR1. | |
Fornisce funzionalità per std :: vector, un array dinamico. |
Libreria di supporto thread
Nome dell'intestazione | Descrizione |
---|---|
Una nuova classe e spazio dei nomi per lavorare con i thread da C ++ 11 in poi. | |
La nuova aggiunta a C ++ 11 in poi. Fornisce mutex, lock, call once, ecc. Che sono tutti meccanismi per l'esclusione reciproca. | |
Contiene funzionalità per le variabili Condizione che forniscono primitive di sincronizzazione utilizzate per bloccare un thread fino a quando non viene notificato da un altro thread che una condizione è soddisfatta o fino a quando non viene raggiunta l'ora di sistema. La nuova aggiunta per C ++ 11 in poi. | |
Questa intestazione ha i componenti che un programma C ++ può utilizzare per recuperare in un thread e il risultato (valore o eccezione) da una funzione che è stata eseguita nello stesso thread o in un altro thread. |
Libreria numerica
Nome dell'intestazione | Descrizione |
---|---|
L'intestazione descrive varie funzioni per rappresentare e manipolare numeri complessi. Ha anche un modello di classe per numeri complessi | |
Funzionalità per generare numeri (pseudo-) casuali | |
Questa intestazione contiene - cinque modelli di classe (valarray, slice_array, gslice_array, mask_array e indiretto_array), - due classi (slice e gslice), - Una serie di modelli di funzione correlati per rappresentare e manipolare matrici di valori. | |
Contiene operazioni numeriche generali. |
Conclusione
Abbiamo discusso in dettaglio le librerie C ++ insieme ai loro tipi e ai passaggi per installare e configurare la libreria.
Siamo venuti a sapere che la libreria C ++ standard contiene varie intestazioni che forniscono funzionalità diverse. Possiamo usare queste intestazioni di libreria standard per sviluppare una varietà di applicazioni in C ++.
=> Controlla TUTTI i tutorial C ++ qui.
Lettura consigliata
- Funzioni di libreria in C ++
- Standard Template Library (STL): una breve introduzione
- Una panoramica completa di C ++
- 70+ MIGLIORI tutorial C ++ per imparare la programmazione C ++ GRATUITAMENTE
- Formattazione di I / O: funzioni printf, sprintf, scanf in C ++
- Operazioni di input / output di base in C ++
- Funzioni stringa in C ++: getline, sottostringa, lunghezza della stringa e altro