c libraries how install
Aquest tutorial sobre biblioteques C ++ explicarà què són les biblioteques en C ++, els seus tipus, juntament amb la instal·lació i ús d'una biblioteca estàndard C ++:
Una biblioteca es pot definir com un paquet de codi o funcions que es pot reutilitzar. Diverses aplicacions poden utilitzar la mateixa biblioteca una i altra vegada. En tenir biblioteques, aconseguim la reutilització, és a dir, un dels principis de la programació orientada a objectes.
Per exemple, funcions matemàtiques com sin, cos, tan, abs, etc. es poden convertir en una biblioteca. En fer-ho, no hem d’escriure aquestes funcions una i altra vegada per a cada aplicació. Només podem fer referència a la biblioteca i reutilitzar el codi a les nostres aplicacions.
=> Visiteu aquí per aprendre C ++ des de zero.
Què aprendreu:
Biblioteques C ++
Una biblioteca C ++ sol consistir en:
Un fitxer de capçalera: Això defineix la funcionalitat que ofereix la biblioteca.
Un binari precompilat: Aquest fitxer conté la implementació real de la funcionalitat. Aquesta implementació es precompila en un llenguatge de màquina.
Les biblioteques estan precompilades ja que no hi ha cap raó per recompilar les biblioteques ja que pràcticament no canvien. En segon lloc, com que les biblioteques precompilades es troben en un formulari de llenguatge automàtic, estan protegides ja que ningú no hi pot accedir directament. Així, les biblioteques estan protegides.
A C ++ tenim dos tipus de biblioteques:
- Biblioteques estàtiques
- Biblioteques dinàmiques
Biblioteques estàtiques
Les biblioteques estàtiques també s’anomenen Arxius. Una biblioteca estàtica és una biblioteca que es converteix en una part de l'executable que hi fa referència. Així, quan desenvolupem una aplicació i hi fem referència a una biblioteca estàtica, el contingut de la biblioteca estàtica es reemplaça a l’aplicació.
Les biblioteques estàtiques de Windows solen tenir una extensió '.lib' mentre que les de Linux tenen l'extensió '.a' (o arxiu).
Preguntes sobre l'entrevista sql durant 5 anys d'experiència
Un dels avantatges de tenir una biblioteca estàtica de referència del programa és que no hem de distribuir la biblioteca estàtica juntament amb l’executable. Això es deu al fet que el contingut de la biblioteca estàtica forma part de les aplicacions i no cal donar-lo per separat.
Aquest avantatge específic es tradueix en un desavantatge, ja que l'executable pot arribar a ser voluminós i es perd massa espai, ja que la biblioteca forma part de l'executable.
Un altre desavantatge de tenir una biblioteca estàtica és que si la biblioteca estàtica canvia, també s’ha d’actualitzar la referència executable.
Biblioteques dinàmiques
La biblioteca dinàmica també es coneix com a 'biblioteca compartida'. Al Windows, la biblioteca dinàmica té l'extensió '.dll' (biblioteca enllaçada dinàmicament). A Linux, la biblioteca dinàmica té l'extensió '.so' (objecte compartit).
Una biblioteca dinàmica és una biblioteca que consisteix en rutines que es carreguen a l'aplicació en temps d'execució. Quan una aplicació fa referència a una biblioteca dinàmica, la biblioteca no passa a formar part de l'aplicació, sinó que es manté com una unitat independent.
La biblioteca dinàmica té l’avantatge que moltes aplicacions poden compartir una còpia de la biblioteca amb la qual cosa s’estalvia espai. Un altre avantatge és que, com que la biblioteca dinàmica és una unitat independent, l'executable de l'aplicació no canvia quan canvia la biblioteca dinàmica.
L’únic desavantatge que té una biblioteca dinàmica és que requereix un programa independent per carregar i fer referència a la biblioteca, cosa que pot resultar feixuga. Per solucionar aquest problema, fem servir la rutina 'importa biblioteca'.
An biblioteca d'importació és un mecanisme que carrega i utilitza automàticament una biblioteca dinàmica al programa. Al Windows, la biblioteca d'importació manté una petita biblioteca estàtica (.lib) amb el mateix nom que el fitxer .dll i està enllaçada al programa en el moment de la compilació.
Un cop fet això, la biblioteca dinàmica s’utilitza com si fos una biblioteca estàtica. Al sistema operatiu Linux, la biblioteca dinàmica o el fitxer d’objectes compartits (.so) actua tant com a biblioteca d’importació com a biblioteca dinàmica. La majoria dels enllaçadors del sistema operatiu Linux poden crear una biblioteca d’importació per a una biblioteca dinàmica.
Com instal·lar i utilitzar les biblioteques C ++
Vegem alguns dels passos que hem de seguir per instal·lar aquestes biblioteques i utilitzar-les a la nostra aplicació.
# 1) Adquirir la biblioteca
Per utilitzar la biblioteca a la nostra aplicació, primer hem d’adquirir-la. És possible que la biblioteca estigui precompilada; en aquest cas, només hem de descarregar la biblioteca per al sistema operatiu. Si la biblioteca no està precompilada, hem de descarregar el codi font i compilar-lo a la nostra màquina.
A Windows, les biblioteques solen tenir extensió .zip mentre que al sistema operatiu Linux el paquet de biblioteca es distribueix com a '.RPM'.
# 2) Instal·leu la biblioteca
El següent pas un cop obtinguda la biblioteca és instal·lar-la. La instal·lació al Windows és tan senzilla com descomprimir el contingut de la biblioteca en una carpeta. A Linux, podem invocar el gestor de paquets per instal·lar la biblioteca.
# 3) Incloeu el camí de la biblioteca per al compilador
Hem d’establir el camí de la biblioteca perquè el compilador sàpiga on cercar els fitxers de la biblioteca. Aquest pot ser el directori 'inclou' a Windows o '/ usr / include' a Linux.
# 4) Enllaceu el camí de la biblioteca
Aquest pas es realitza perquè l'enllaçador conegui la ruta exacta de les biblioteques que ha d'enllaçar durant el procés d'enllaç. Normalment, hi ha una carpeta '/ lib' a Windows o una carpeta '/ usr / lib' a Linux que conté totes les biblioteques.
Un cop instal·lada la biblioteca, el compilador i l'enllaçador coneixen el camí de la biblioteca a utilitzar i la biblioteca ja està a punt per utilitzar-la. Al nostre programa, podem fer referència a la funcionalitat de la biblioteca i, ja que hem inclòs els fitxers de capçalera al nostre programa, el compilador podrà compilar la funcionalitat.
Com que els programadors utilitzen majoritàriament IDE per al desenvolupament, especifiquem el camí de la biblioteca al propi IDE.
Capçaleres / biblioteques estàndard en C ++
Analitzem algunes de les capçaleres o biblioteques estàndard que utilitza el llenguatge C ++. Ja hem comentat aquestes capçaleres en els seus temes respectius als nostres tutorials de C ++.
Biblioteca C estàndard
La norma ANSI C especifica el fitxer Biblioteca estàndard C. o bé libc que actua com la biblioteca estàndard del llenguatge de programació C. C ++ inclou cada capçalera de la biblioteca estàndard C amb un nom diferent afegint 'c' al principi i eliminant '.h' al final. Així, la capçalera xxx.h en C es convertirà en 'cxxx' a l'estàndard C ++.
La biblioteca estàndard C proporciona la funcionalitat relacionada amb macros, manipulació de cadenes, definicions de tipus de càlculs matemàtics, processament d’entrada / sortida, gestió de memòria, etc., entre d’altres.
Comprovar aquí per obtenir més informació sobre la biblioteca estàndard C.
General
La biblioteca general de C ++ inclou les capçaleres següents, tal com es mostra a continuació.
Nom de la capçalera | Descripció |
---|---|
Defineix la funcionalitat de la tupla. Disponible a partir de C ++ 11. | |
Els algoritmes utilitzats per molts contenidors es defineixen en aquesta capçalera. | |
Inclou elements temporals com std :: chrono :: time_point, std :: chrono :: duration i rellotges. | |
Aquesta capçalera proporciona funcions objectes per utilitzar amb algoritmes generals. | |
Conté classes i plantilles per als iteradors. | |
Defineix la funcionalitat de gestió de memòria a C ++. | |
Defineix classes excepcionals estàndard que inclouen std :: logic_error i std :: runtime_error, totes dues derivades de std :: exception. | |
Classes de plantilla com std :: pair etc. o espais de noms com std :: rel_ops es defineixen en aquesta capçalera. |
Fluxos i entrada / sortida
Nom de la capçalera | Descripció |
---|---|
Conté la funcionalitat de la classe de plantilla std :: ostream i altres classes de suport per a la sortida. | |
Proporciona funcionalitat per a l'entrada-sortida basada en fitxers. | |
Conté funcionalitats per al format de sortida com precisió, base, etc. | |
Conté funcionalitats bàsiques per a operacions iostream. | |
Proporciona declaracions directes de diverses plantilles de classes relacionades amb E / S. | |
Proporciona fonaments d’entrada i sortida C ++. | |
Conté la funcionalitat de la classe de plantilla std :: istream i altres classes de suport per a l'entrada. | |
Defineix la classe de plantilla std :: stringstream i altres classes de suport utilitzades per a la manipulació de cadenes. | |
Conté funcionalitats per llegir i escriure a / des de certs tipus de seqüències de caràcters, com ara fitxers externs o cadenes. |
Suport lingüístic
Nom de la capçalera | Descripció |
---|---|
Implementa la funcionalitat de std :: queue, una cua de finalització única i std :: priority_queue, una cua de prioritat. | |
Aquesta capçalera conté diversos tipus i funcions per al tractament d’excepcions, inclosa la classe base per a totes les excepcions, std :: exception. | |
Aquesta capçalera conté la classe de plantilla std :: numeric_limits que s’utilitza per descriure propietats numèriques fonamentals | |
Conté operadors nous i de supressió i altres funcions relacionades amb els fonaments de la gestió de memòria C ++. | |
Proporciona facilitats per treballar amb informació de tipus d'execució C ++. |
Cordes
Nom de la capçalera | Descripció |
---|---|
Aquesta capçalera conté les classes i plantilles de cadena estàndard en C ++. | |
Això és nou a C ++ 11. Proporciona utilitats per a cadenes de patrons que fan servir expressions regulars. |
Localització
Nom de la capçalera | Descripció |
---|---|
Aquesta capçalera té funcions regionals. Defineix classes i declara funcions que encapsulen i manipulen la informació específica d'una configuració regional. | |
Conté facetes de conversió de codi per a diverses codificacions de caràcters. |
Contenidors
Nom de la capçalera | Descripció |
---|---|
Conté funcionalitats per a std :: array, un contenidor per a una matriu de mida fixa. Nova incorporació a C ++ 11 i TR1. | |
Classe de contenidors especialitzada std :: bitset, una matriu de bits. | |
Conté funcionalitats per a std :: deque, una cua de doble extrem. | |
Capçalera de std :: forward_list, una llista enllaçada individualment. Nova incorporació a C ++ 11 i TR1. | |
Conté funcionalitats per a std :: list, una llista doblement enllaçada. | |
Conté funcionalitats per a std :: map i std :: multimap, matriu associativa ordenada i multimap. | |
Té la capçalera de std :: set i std :: multiset, ordenats contenidors o conjunts associatius. | |
Proporciona la classe d'adaptador de contenidor std :: stack, una pila. | |
Aquesta capçalera conté std :: unordered_map i std :: unordered_multimap, funcionalitat de taules de hash. Novetat a C ++ 11 i TR1. | |
Proporciona funcionalitats per a std :: unordered_set i std :: unordered_multiset. Novetat a C ++ 11 i TR1. | |
Proporciona funcionalitat per a std :: vector, una matriu dinàmica. |
Biblioteca de suport de fils
Nom de la capçalera | Descripció |
---|---|
Una nova classe i espai de noms per treballar amb fils a partir de C ++ 11. | |
La nova incorporació a C ++ 11 en endavant. Proporciona mutexes, panys, trucades una vegada, etc., que són tots els mecanismes d’exclusió mútua. | |
Conté funcionalitats per a les variables de condició que proporcionen primitives de sincronització utilitzades per bloquejar un fil fins que un altre fil notifiqui que es compleix alguna condició o fins que s'arriba a l'hora del sistema. La nova addició per a C ++ 11 en endavant. | |
Aquesta capçalera té els components que un programa C ++ pot utilitzar per recuperar en un fil i el resultat (valor o excepció) d'una funció que s'ha executat en el mateix fil o en un altre fil. |
Biblioteca numèrica
Nom de la capçalera | Descripció |
---|---|
La capçalera descriu diverses funcions per representar i manipular nombres complexos. També té una plantilla de classe per a nombres complexos | |
Funcionalitat per generar (pseudo) nombres aleatoris | |
Aquesta capçalera conté - cinc plantilles de classe (valarray, slice_array, gslice_array, mask_array i indirect_array), - dues classes (slice i gslice), - Una sèrie de plantilles de funcions relacionades per representar i manipular matrius de valors. | |
Conté operacions numèriques generals. |
Conclusió
Vam discutir detalladament les biblioteques C ++ juntament amb els seus tipus i els passos per instal·lar i configurar la biblioteca.
Vam saber que la biblioteca estàndard C ++ conté diverses capçaleres que proporcionen diferents funcionalitats. Podem utilitzar aquestes capçaleres de biblioteca estàndard per desenvolupar diverses aplicacions en C ++.
=> Consulteu TOTS els tutorials de C ++ aquí.
Lectura recomanada
- Funcions de biblioteca a C ++
- Biblioteca de plantilles estàndard (STL): una breu introducció
- Una visió general completa de C ++
- 70+ BEST Tutorials C ++ per aprendre programació C ++ GRATIS
- Format de E / S: funcions printf, sprintf, scanf a C ++
- Operacions bàsiques d'entrada / sortida en C ++
- Funcions de cadena a C ++: getline, subcadena, longitud de cadena i més