c libraries how install
Este tutorial de bibliotecas de C ++ explicará qué son las bibliotecas en C ++, sus tipos junto con la instalación y el uso de una biblioteca estándar de C ++:
Una biblioteca se puede definir como un paquete de código o funciones que es reutilizable. Varias aplicaciones pueden usar la misma biblioteca una y otra vez. Al tener bibliotecas, logramos la reutilización, es decir, uno de los principios de la programación orientada a objetos.
Por ejemplo, Las funciones matemáticas como sin, cos, tan, abs, etc. se pueden convertir en una biblioteca. Al hacer esto, no tenemos que escribir estas funciones una y otra vez para cada aplicación. Podemos simplemente hacer referencia a la biblioteca y reutilizar el código en nuestras aplicaciones.
=> Visite aquí para aprender C ++ desde cero.
Lo que vas a aprender:
Bibliotecas C ++
Una biblioteca de C ++ generalmente consta de:
Un archivo de encabezado: Esto define la funcionalidad que ofrece la biblioteca.
Un binario precompilado: Este archivo contiene la implementación real de la funcionalidad. Esta implementación está precompilada en un lenguaje de máquina.
Las bibliotecas están precompiladas, ya que no hay razón para volver a compilarlas, ya que apenas cambian. En segundo lugar, como las bibliotecas precompiladas están en formato de lenguaje de máquina, están protegidas porque nadie puede acceder a ellas directamente. Por tanto, las bibliotecas están protegidas.
En C ++ tenemos dos tipos de Bibliotecas:
- Bibliotecas estáticas
- Bibliotecas dinámicas
Bibliotecas estáticas
Las bibliotecas estáticas también se denominan archivos. Una biblioteca estática es una biblioteca que se convierte en parte del ejecutable que hace referencia a ella. Por lo tanto, cuando desarrollamos una aplicación y hacemos referencia a una biblioteca estática en ella, el contenido de la biblioteca estática se reemplaza en la aplicación.
Las bibliotecas estáticas de Windows suelen tener una extensión '.lib', mientras que las de Linux tienen la extensión '.a' (o archivo).
técnicas de obtención de requisitos en ingeniería de software
Una ventaja de tener una biblioteca estática de referencia de programa es que no tenemos que distribuir la biblioteca estática junto con el ejecutable. Esto se debe a que el contenido de la biblioteca estática es parte de las aplicaciones y no es necesario proporcionarlo por separado.
Esta ventaja específica resulta en una desventaja ya que el ejecutable puede volverse voluminoso y se desperdicia demasiado espacio ya que la biblioteca es parte del ejecutable.
Otra desventaja de tener una biblioteca estática es que si la biblioteca estática cambia, el ejecutable que hace referencia a ella también debe actualizarse.
Bibliotecas dinámicas
La biblioteca dinámica también se conoce como la 'biblioteca compartida'. En Windows, la biblioteca dinámica tiene la extensión '.dll' (biblioteca vinculada dinámicamente). En Linux, la biblioteca dinámica tiene la extensión '.so' (objeto compartido).
Una biblioteca dinámica es una biblioteca que consta de rutinas que se cargan en la aplicación en tiempo de ejecución. Cuando una aplicación hace referencia a una biblioteca dinámica, la biblioteca no se convierte en parte de la aplicación, sino que permanece como una unidad separada.
La biblioteca dinámica tiene la ventaja de que muchas aplicaciones pueden compartir una copia de la biblioteca, lo que ahorra espacio. Otra ventaja más es que, como la biblioteca dinámica es una unidad separada, el ejecutable de la aplicación no cambia cuando cambia la biblioteca dinámica.
La única desventaja que tiene una biblioteca dinámica es que requiere un programa separado para cargar y hacer referencia a la biblioteca, lo que puede ser engorroso. Para resolver este problema, usamos la rutina 'importar biblioteca'.
Un importar biblioteca es un mecanismo que carga y usa una biblioteca dinámica automáticamente en el programa. En Windows, la biblioteca de importación mantiene una pequeña biblioteca estática (.lib) con el mismo nombre que el archivo .dll y está vinculada al programa en el momento de la compilación.
Una vez hecho esto, la biblioteca dinámica se utiliza como si fuera una biblioteca estática. En el sistema operativo Linux, la biblioteca dinámica o el archivo de objeto compartido (.so) actúa como una biblioteca de importación y también como una biblioteca dinámica. La mayoría de los enlazadores en el sistema operativo Linux pueden crear una biblioteca de importación para una biblioteca dinámica.
Cómo instalar y usar bibliotecas C ++
Veamos algunos de los pasos que debemos seguir para instalar estas bibliotecas y usarlas en nuestra aplicación.
# 1) Adquirir la biblioteca
Para utilizar la biblioteca en nuestra aplicación, primero debemos adquirir la biblioteca. La biblioteca puede estar precompilada; en tal caso, solo necesitamos descargar la biblioteca para el sistema operativo. Si la biblioteca no está precompilada, entonces necesitamos descargar el código fuente y compilarlo en nuestra máquina.
En Windows, las bibliotecas suelen tener la extensión .zip, mientras que en el sistema operativo Linux el paquete de la biblioteca se distribuye como '.RPM'.
# 2) Instale la biblioteca
El siguiente paso una vez que obtenemos la biblioteca es instalar la biblioteca. La instalación en Windows es tan simple como descomprimir el contenido de la biblioteca en una carpeta. En Linux, podemos invocar el administrador de paquetes para instalar la biblioteca.
# 3) Incluya la ruta de la biblioteca para el compilador
Necesitamos establecer la ruta de la biblioteca para que el compilador sepa dónde buscar los archivos de la biblioteca. Puede ser el directorio 'include' en Windows o '/ usr / include' en Linux.
# 4) Vincular la ruta de la biblioteca
Este paso se realiza para que el vinculador conozca la ruta exacta de las bibliotecas que tiene que vincular durante el proceso de vinculación. Por lo general, hay una carpeta '/ lib' en Windows o una carpeta '/ usr / lib' en Linux que contiene todas las bibliotecas.
Una vez que la biblioteca está instalada, el compilador y el vinculador conocen la ruta de la biblioteca a usar y la biblioteca está lista para usarse. En nuestro programa, podemos referirnos a la funcionalidad de la biblioteca, y como hemos incluido los archivos de encabezado en nuestro programa, el compilador podrá compilar la funcionalidad.
Como los programadores utilizan principalmente IDE para el desarrollo, especificamos la ruta de la biblioteca en el propio IDE.
Encabezados / bibliotecas estándar en C ++
Analicemos algunos de los encabezados o bibliotecas estándar que usa el lenguaje C ++. Ya hemos discutido estos encabezados en sus respectivos temas en nuestros tutoriales de C ++.
Biblioteca estándar de C
El estándar ANSI C especifica el Biblioteca estándar C o libc que actúa como biblioteca estándar para el lenguaje de programación C. C ++ incluye cada encabezado de la biblioteca estándar de C con un nombre diferente al agregar 'c' al principio y eliminar '.h' al final. Por lo tanto, el encabezado xxx.h en C se convertirá en 'cxxx' en el estándar C ++.
La biblioteca estándar de C proporciona la funcionalidad relacionada con macros, manejo de cadenas, cálculos matemáticos, definiciones de tipo, procesamiento de entrada / salida, administración de memoria, etc., entre otros.
Cheque Aquí para obtener más información sobre C Standard Library.
General
La biblioteca general de C ++ incluye los siguientes encabezados como se muestra a continuación.
| Nombre del encabezado | Descripción |
|---|---|
| Define la funcionalidad de la tupla. Disponible desde C ++ 11 en adelante. | |
| Los algoritmos utilizados por muchos contenedores se definen en este encabezado. | |
| Incluye elementos de tiempo como std :: chrono :: time_point, std :: chrono :: duration y relojes. | |
| Este encabezado proporciona funciones de objetos que se utilizarán con algoritmos generales. | |
| Contiene clases y plantillas para iteradores. | |
| Define la funcionalidad de administración de memoria en C ++. | |
| Define clases de excepción estándar que incluyen std :: logic_error y std :: runtime_error, ambos derivados de std :: exception. | |
| Las clases de plantilla como std :: pair, etc. o los espacios de nombres como std :: rel_ops se definen en este encabezado. |
Streams y entrada / salida
| Nombre del encabezado | Descripción |
|---|---|
| Contiene la funcionalidad de la clase de plantilla std :: ostream y otras clases de soporte para la salida. | |
| Proporciona funcionalidad para entrada-salida basada en archivos. | |
| Contiene funcionalidad para formateo de salida como precisión, base, etc. | |
| Contiene funcionalidad básica para operaciones de iostream. | |
| Proporciona declaraciones de reenvío de varias plantillas de clases relacionadas con E / S. | |
| Proporciona los fundamentos de entrada y salida de C ++. | |
| Contiene la funcionalidad de la clase de plantilla std :: istream y otras clases de apoyo para la entrada. | |
| Define la clase de plantilla std :: stringstream y otras clases de soporte utilizadas para la manipulación de cadenas. | |
| Contiene funcionalidad para leer y escribir desde / hacia ciertos tipos de secuencias de caracteres, como archivos externos o cadenas. |
Ayuda de idioma
| Nombre del encabezado | Descripción |
|---|---|
| Implementa la funcionalidad para std :: queue, una cola de un solo extremo, y std :: priority_queue, una cola de prioridad. | |
| Este encabezado contiene varios tipos y funciones para el manejo de excepciones, incluida la clase base para todas las excepciones, std :: exception. | |
| Este encabezado contiene la clase de plantilla std :: numeric_limits utilizada para describir propiedades numéricas fundamentales | |
| Contiene operadores nuevos y eliminar y otras funciones relacionadas con los fundamentos de la administración de memoria de C ++. | |
| Proporciona funciones para trabajar con información de tipo en tiempo de ejecución de C ++. |
Instrumentos de cuerda
| Nombre del encabezado | Descripción |
|---|---|
| Este encabezado contiene las clases de cadenas estándar y plantillas en C ++. | |
| Esto es nuevo en C ++ 11. Proporciona utilidades para cadenas de coincidencia de patrones mediante expresiones regulares. |
Localización
| Nombre del encabezado | Descripción |
|---|---|
| Este encabezado tiene funcionalidad de configuración regional. Define clases y declara funciones que encapsulan y manipulan la información específica de una localidad. | |
| Contiene facetas de conversión de código para varias codificaciones de caracteres. |
Contenedores
| Nombre del encabezado | Descripción |
|---|---|
| Contiene funcionalidad para std :: array, un contenedor para una matriz de tamaño fijo. Nueva incorporación en C ++ 11 y TR1. | |
| Clase de contenedor especializada std :: bitset, una matriz de bits. | |
| Contiene funcionalidad para std :: deque, una cola de dos extremos. | |
| Encabezado para std :: forward_list, una lista enlazada individualmente. Nueva incorporación en C ++ 11 y TR1. | |
| Contiene funcionalidad para std :: list, una lista doblemente enlazada. | |
| Contiene funcionalidad para std :: map y std :: multimap, matriz asociativa ordenada y multimap. | |
| Tiene el encabezado para std :: set y std :: multiset, contenedores o conjuntos asociativos ordenados. | |
| Proporciona la clase de adaptador de contenedor std :: stack, una pila. | |
| Este encabezado contiene std :: unordered_map y std :: unordered_multimap, funcionalidad de tablas hash. Nuevo en C ++ 11 y TR1. | |
| Proporciona funcionalidad para std :: unordered_set y std :: unordered_multiset. Nuevo en C ++ 11 y TR1. | |
| Proporciona funcionalidad para std :: vector, una matriz dinámica. |
Biblioteca de soporte de subprocesos
| Nombre del encabezado | Descripción |
|---|---|
| Una nueva clase y espacio de nombres para trabajar con subprocesos desde C ++ 11 en adelante. | |
| La nueva incorporación a C ++ 11 en adelante. Proporciona mutex, bloqueos, llamar una vez, etc., que son todos los mecanismos de exclusión mutua. | |
| Contiene funcionalidad para variables de condición que proporcionan primitivas de sincronización que se utilizan para bloquear un hilo hasta que otro hilo le notifica que se cumple alguna condición o hasta que se alcanza la hora del sistema. La nueva incorporación para C ++ 11 en adelante. | |
| Este encabezado tiene los componentes que un programa C ++ puede usar para recuperar en un hilo y el resultado (valor o excepción) de una función que se ha ejecutado en el mismo hilo o en otro hilo. |
Biblioteca numérica
| Nombre del encabezado | Descripción |
|---|---|
| El encabezado describe varias funciones para representar y manipular números complejos. También tiene una plantilla de clase para números complejos. | |
| Funcionalidad para generar números (pseudo) aleatorios | |
| Este encabezado contiene - cinco plantillas de clase (valarray, slice_array, gslice_array, mask_array y fixed_array), - dos clases (rebanada y gslice), - Una serie de plantillas de funciones relacionadas para representar y manipular matrices de valores. | |
| Contiene operaciones numéricas generales. |
Conclusión
Discutimos las bibliotecas de C ++ en detalle junto con sus tipos y los pasos para instalar y configurar la biblioteca.
Llegamos a saber que la biblioteca estándar de C ++ contiene varios encabezados que brindan diferentes funcionalidades. Podemos usar estos encabezados de biblioteca estándar para desarrollar una variedad de aplicaciones en C ++.
=> Consulte TODOS los tutoriales de C ++ aquí.
Lectura recomendada
- Funciones de biblioteca en C ++
- Biblioteca de plantillas estándar (STL): una breve introducción
- Una descripción completa de C ++
- 70+ MEJORES Tutoriales de C ++ para aprender programación C ++ GRATIS
- Formateo de E / S: printf, sprintf, scanf Funciones en C ++
- Operaciones básicas de entrada / salida en C ++
- Funciones de cadena en C ++: getline, subcadena, longitud de cadena y más