c libraries how install
Ce didacticiel sur les bibliothèques C ++ expliquera ce que sont les bibliothèques en C ++, leurs types ainsi que l'installation et l'utilisation d'une bibliothèque standard C ++:
Une bibliothèque peut être définie comme un package de code ou de fonctions réutilisable. Diverses applications peuvent utiliser la même bibliothèque encore et encore. En ayant des bibliothèques, nous atteignons la réutilisabilité, c'est-à-dire l'un des principes de la programmation orientée objet.
Par exemple, Les fonctions mathématiques comme sin, cos, tan, abs, etc. peuvent être transformées en bibliothèque. En faisant cela, nous n'avons pas à écrire ces fonctions encore et encore pour chaque application. Nous pouvons simplement référencer la bibliothèque et réutiliser le code dans nos applications.
=> Visitez ici pour apprendre le C ++ à partir de zéro.
Ce que vous apprendrez:
Bibliothèques C ++
Une bibliothèque C ++ se compose généralement de:
Un fichier d'en-tête: Cela définit la fonctionnalité offerte par la bibliothèque.
Un binaire précompilé: Ce fichier contient l'implémentation réelle de la fonctionnalité. Cette implémentation est précompilée dans un langage machine.
Les bibliothèques sont précompilées car il n'y a aucune raison de recompiler les bibliothèques car elles changent à peine. Deuxièmement, comme les bibliothèques précompilées sont sous forme de langage machine, elles sont sécurisées car personne ne peut y accéder directement. Ainsi les bibliothèques sont sécurisées.
En C ++, nous avons deux types de bibliothèques:
- Bibliothèques statiques
- Bibliothèques dynamiques
Bibliothèques statiques
Les bibliothèques statiques sont également appelées archives. Une bibliothèque statique est une bibliothèque qui devient une partie de l'exécutable qui le référence. Ainsi, lorsque nous développons une application et y référençons une bibliothèque statique, le contenu de la bibliothèque statique est remplacé dans l'application.
Les bibliothèques statiques sous Windows ont généralement une extension «.lib» tandis que celles sous Linux ont l'extension «.a» (ou archive).
quel est le but des tests d'acceptation des utilisateurs
L’avantage d’avoir une bibliothèque statique de référence de programme est que nous n’avons pas à distribuer la bibliothèque statique avec l’exécutable. En effet, le contenu de la bibliothèque statique fait partie des applications et il n'est pas nécessaire de le donner séparément.
Cet avantage spécifique entraîne un inconvénient car l'exécutable peut devenir volumineux et trop d'espace est gaspillé car la bibliothèque fait partie de l'exécutable.
Un autre inconvénient d'avoir une bibliothèque statique est que si la bibliothèque statique change, l'exécutable qui la référence doit également être mis à jour.
Bibliothèques dynamiques
La bibliothèque dynamique est également appelée «bibliothèque partagée». Sous Windows, la bibliothèque dynamique a l'extension «.dll» (bibliothèque liée dynamiquement). Sous Linux, la bibliothèque dynamique a l'extension «.so» (objet partagé).
Une bibliothèque dynamique est une bibliothèque composée de routines chargées dans l'application au moment de l'exécution. Lorsqu'une application fait référence à une bibliothèque dynamique, la bibliothèque ne devient pas une partie de l'application mais elle reste comme une unité distincte.
La bibliothèque dynamique présente l'avantage qu'une copie de la bibliothèque peut être partagée par de nombreuses applications, économisant ainsi de l'espace. Encore un autre avantage est que, comme la bibliothèque dynamique est une unité distincte, l'exécutable de l'application ne change pas lorsque la bibliothèque dynamique change.
Le seul inconvénient d'une bibliothèque dynamique est qu'elle nécessite un programme séparé pour charger et référencer la bibliothèque, ce qui peut être encombrant. Pour résoudre ce problème, nous utilisons la routine «import library».
Une bibliothèque d'importation est un mécanisme qui charge et utilise automatiquement une bibliothèque dynamique dans le programme. Sous Windows, la bibliothèque d'importation conserve une petite bibliothèque statique (.lib) portant le même nom que le fichier .dll et est liée au programme au moment de la compilation.
Une fois cela fait, la bibliothèque dynamique est utilisée comme s'il s'agissait d'une bibliothèque statique. Sur le système d'exploitation Linux, la bibliothèque dynamique ou le fichier d'objet partagé (.so) fait office de bibliothèque d'importation ainsi que de bibliothèque dynamique. La plupart des éditeurs de liens sur Linux OS sont capables de créer une bibliothèque d'importation pour une bibliothèque dynamique.
Comment installer et utiliser les bibliothèques C ++
Voyons quelques-unes des étapes que nous devons suivre pour installer ces bibliothèques et les utiliser dans notre application.
# 1) Acquérir la bibliothèque
Afin d'utiliser la bibliothèque dans notre application, nous devons d'abord acquérir la bibliothèque. La bibliothèque peut être précompilée - dans ce cas, il suffit de télécharger la bibliothèque pour le système d'exploitation. Si la bibliothèque n'est pas précompilée, nous devons télécharger le code source et le compiler sur notre machine.
Sous Windows, les bibliothèques ont généralement l’extension .zip tandis que sur le système d’exploitation Linux, le package de la bibliothèque est distribué en tant que «.RPM».
# 2) Installez la bibliothèque
La prochaine étape une fois que nous obtenons la bibliothèque est d'installer la bibliothèque. L'installation sous Windows est aussi simple que de décompresser le contenu de la bibliothèque dans un dossier. Sous Linux, nous pouvons appeler le gestionnaire de packages pour installer la bibliothèque.
# 3) Incluez le chemin de la bibliothèque pour le compilateur
Nous devons définir le chemin de la bibliothèque afin que le compilateur sache où chercher les fichiers de la bibliothèque. Il peut s’agir du répertoire ‘include’ sous Windows ou ‘/ usr / include’ sous Linux.
# 4) Liez le chemin de la bibliothèque
Cette étape est effectuée afin que l'éditeur de liens connaisse le chemin exact des bibliothèques qu'il doit lier pendant le processus de liaison. En général, il existe un dossier «/ lib» sous Windows ou un dossier «/ usr / lib» sous Linux qui contient toutes les bibliothèques.
Une fois la bibliothèque installée, le compilateur et l'éditeur de liens connaissent le chemin de la bibliothèque à utiliser et la bibliothèque est prête à être utilisée. Dans notre programme, nous pouvons faire référence à la fonctionnalité de la bibliothèque, et comme nous avons inclus les fichiers d'en-tête dans notre programme, le compilateur pourra compiler la fonctionnalité.
Comme les programmeurs utilisent principalement les IDE pour le développement, nous spécifions le chemin de la bibliothèque dans l'EDI lui-même.
En-têtes / bibliothèques standard en C ++
Voyons quelques-uns des en-têtes ou bibliothèques standard utilisés par le langage C ++. Nous avons déjà discuté de ces en-têtes dans leurs rubriques respectives dans nos tutoriels C ++.
Bibliothèque standard C
La norme ANSI C spécifie la Bibliothèque standard C ou libc qui agit comme la bibliothèque standard pour le langage de programmation C. C ++ inclut chaque en-tête de la bibliothèque standard C sous un nom différent en ajoutant «c» au début et en supprimant «.h» à la fin. Ainsi, l'en-tête xxx.h en C deviendra «cxxx» dans le standard C ++.
La bibliothèque standard C fournit les fonctionnalités liées aux macros, à la gestion des chaînes, aux calculs mathématiques, aux définitions de type, au traitement d'entrée / sortie, à la gestion de la mémoire, etc.
Vérifier ici pour plus d'informations sur la bibliothèque standard C.
général
La bibliothèque C ++ générale comprend les en-têtes suivants, comme indiqué ci-dessous.
Nom de l'en-tête | Description |
---|---|
Définit la fonctionnalité du tuple. Disponible à partir de C ++ 11. | |
Les algorithmes utilisés par de nombreux conteneurs sont définis dans cet en-tête. | |
Inclut des éléments de temps comme std :: chrono :: time_point, std :: chrono :: duration et horloges. | |
Cet en-tête fournit des objets de fonctions à utiliser avec des algorithmes généraux. | |
Contient des classes et des modèles pour les itérateurs. | |
Définit la fonctionnalité de gestion de la mémoire en C ++. | |
Définit les classes d'exception standard, notamment std :: logic_error et std :: runtime_error, toutes deux dérivées de std :: exception. | |
Les classes de modèle comme std :: pair etc. ou les espaces de noms comme std :: rel_ops sont définis dans cet en-tête. |
Flux et entrée / sortie
Nom de l'en-tête | Description |
---|---|
Contient les fonctionnalités de la classe de modèle std :: ostream et d'autres classes de prise en charge pour la sortie. | |
Fournit des fonctionnalités pour les entrées-sorties basées sur des fichiers. | |
Contient des fonctionnalités pour le formatage de sortie comme la précision, la base, etc. | |
Contient des fonctionnalités de base pour les opérations iostream. | |
Fournit des déclarations directes de plusieurs modèles de classe liés aux E / S. | |
Fournit les principes fondamentaux d'entrée et de sortie C ++. | |
Contient les fonctionnalités de la classe de modèle std :: istream et d'autres classes de prise en charge pour l'entrée. | |
Définit la classe de modèle std :: stringstream et d'autres classes de prise en charge utilisées pour la manipulation de chaînes. | |
Contient des fonctionnalités de lecture et d'écriture vers / à partir de certains types de séquences de caractères, tels que des fichiers externes ou des chaînes. |
Support linguistique
Nom-de-l'en-tête | Description |
---|---|
Implémente la fonctionnalité pour std :: queue, une file d'attente asymétrique, et std :: priority_queue, une file d'attente prioritaire. | |
Cet en-tête contient divers types et fonctions pour la gestion des exceptions, y compris la classe de base pour toutes les exceptions, std :: exception. | |
Cet en-tête contient la classe de modèle std :: numeric_limits utilisée pour décrire les propriétés numériques fondamentales | |
Contient les opérateurs new et delete et d'autres fonctions liées aux principes de base de la gestion de la mémoire C ++. | |
Fournit des fonctionnalités pour travailler avec les informations de type d'exécution C ++. |
Cordes
Nom de l'en-tête | Description |
---|---|
Cet en-tête contient les classes et modèles de chaînes standard en C ++. | |
C'est nouveau dans C ++ 11. Fournit des utilitaires pour les chaînes de correspondance de modèles à l'aide d'expressions régulières. |
Localisation
Nom-de-l'en-tête | Description |
---|---|
Cet en-tête a une fonctionnalité locale. Il définit des classes et déclare des fonctions qui encapsulent et manipulent les informations spécifiques à une locale. | |
Contient des facettes de conversion de code pour divers encodages de caractères. |
Conteneurs
Nom-de-l'en-tête | Description |
---|---|
Contient des fonctionnalités pour std :: array, un conteneur pour un tableau de taille fixe. Nouvel ajout dans C ++ 11 et TR1. | |
Classe de conteneur spécialisée std :: bitset, un tableau de bits. | |
Contient des fonctionnalités pour std :: deque, une file d'attente à deux extrémités. | |
En-tête de std :: forward_list, une liste liée individuellement. Nouvel ajout dans C ++ 11 et TR1. | |
Contient des fonctionnalités pour std :: list, une liste doublement liée. | |
Contient des fonctionnalités pour std :: map et std :: multimap, tableau associatif trié et multimap. | |
A l'en-tête pour std :: set et std :: multiset, conteneurs associatifs triés ou ensembles. | |
Fournit la classe d'adaptateur de conteneur std :: stack, une pile. | |
Cet en-tête contient std :: unordered_map et std :: unordered_multimap, fonctionnalité de tables de hachage. Nouveau dans C ++ 11 et TR1. | |
Fournit des fonctionnalités pour std :: unordered_set et std :: unordered_multiset. Nouveau dans C ++ 11 et TR1. | |
Fournit des fonctionnalités pour std :: vector, un tableau dynamique. |
Bibliothèque de prise en charge des threads
Nom de l'en-tête | Description |
---|---|
Une nouvelle classe et un nouvel espace de noms pour travailler avec les threads à partir de C ++ 11. | |
Le nouvel ajout à C ++ 11 et les versions ultérieures. Il fournit des mutex, des verrous, un appel unique, etc. qui sont tous les mécanismes d'exclusion mutuelle. | |
Contient des fonctionnalités pour les variables de condition qui fournissent des primitives de synchronisation utilisées pour bloquer un thread jusqu'à ce qu'un autre thread soit informé qu'une condition est remplie ou jusqu'à ce qu'une heure système soit atteinte. Le nouvel ajout pour C ++ 11 et les versions ultérieures. | |
Cet en-tête contient les composants qu'un programme C ++ peut utiliser pour récupérer dans un thread et le résultat (valeur ou exception) d'une fonction qui a été exécutée dans le même thread ou un autre thread. |
Bibliothèque numérique
Nom de l'en-tête | Description |
---|---|
L'en-tête décrit diverses fonctions pour représenter et manipuler des nombres complexes. Il a également un modèle de classe pour les nombres complexes | |
Fonctionnalité pour générer des nombres (pseudo-) aléatoires | |
Cet en-tête contient - cinq modèles de classes (valarray, slice_array, gslice_array, mask_array et indirect_array), - deux classes (slice et gslice), - Une série de modèles de fonctions connexes pour représenter et manipuler des tableaux de valeurs. | |
Contient des opérations numériques générales. |
Conclusion
Nous avons discuté en détail des bibliothèques C ++ ainsi que de leurs types et des étapes d'installation et de configuration de la bibliothèque.
Nous avons appris que la bibliothèque C ++ standard contient divers en-têtes qui fournissent différentes fonctionnalités. Nous pouvons utiliser ces en-têtes de bibliothèque standard pour développer une variété d'applications en C ++.
=> Consultez TOUS les didacticiels C ++ ici.
lecture recommandée
- Fonctions de bibliothèque en C ++
- Bibliothèque de modèles standard (STL): une brève introduction
- Un aperçu complet de C ++
- Plus de 70 meilleurs didacticiels C ++ pour apprendre la programmation C ++ gratuitement
- Formater les E / S: fonctions printf, sprintf, scanf en C ++
- Opérations d'entrée / sortie de base en C ++
- Fonctions de chaîne en C ++: getline, sous-chaîne, longueur de chaîne, etc.