Maison  >  Article  >  Quelle est la différence entre une bibliothèque dynamique et une bibliothèque statique

Quelle est la différence entre une bibliothèque dynamique et une bibliothèque statique

青灯夜游
青灯夜游original
2021-07-23 13:37:1939518parcourir

Différences : 1. L'extension des bibliothèques statiques est généralement « .a » ou « .lib » ; l'extension des bibliothèques dynamiques est généralement « .so » ou « .dll ». 2. La bibliothèque statique sera directement intégrée au programme cible lors de la compilation et le fichier exécutable compilé avec succès pourra s'exécuter indépendamment ; la bibliothèque dynamique ne sera pas placée dans le programme cible connecté lors de la compilation, c'est-à-dire que le fichier exécutable ne pourra pas s'exécuter indépendamment ; .

Quelle est la différence entre une bibliothèque dynamique et une bibliothèque statique

L'environnement d'exploitation de ce tutoriel : système Windows 10, ordinateur Dell G3.

La différence la plus essentielle entre une bibliothèque statique et une bibliothèque dynamique est : si la bibliothèque est compilée dans la cible (programme) .

Bibliothèque (de fonctions) statique

a généralement une extension de (.a ou .lib), et ce type de bibliothèque de fonctions a généralement une extension de libxxx.a ou xxx.lib.

Ce type de bibliothèque sera directement intégré au programme cible lors de la compilation, de sorte que les fichiers compilés à l'aide de bibliothèques de fonctions statiques seront relativement volumineux. Le plus grand avantage de ce type de bibliothèque de fonctions est que le fichier exécutable compilé avec succès peut s'exécuter. Il n'est pas nécessaire de demander à l'extérieur de lire le contenu de la bibliothèque de fonctions ; cependant, il n'y a évidemment aucun avantage en termes de facilité de mise à niveau. Si la bibliothèque de fonctions est mise à jour, elle doit être recompilée.

Bibliothèque de fonctions dynamiques

L'extension d'une bibliothèque de fonctions dynamiques est généralement (.so ou .dll), et ce type de bibliothèque de fonctions est généralement nommé libxxx.so ou xxx.dll.

Contrairement aux bibliothèques de fonctions statiques qui sont entièrement capturées dans le programme, les bibliothèques de fonctions dynamiques n'ont qu'un seul emplacement « pointant » dans le programme lors de la compilation, c'est-à-dire que lorsque le fichier exécutable doit utiliser le mécanisme de la bibliothèque de fonctions, le programme le fera. lire la bibliothèque de fonctions pour l'utiliser ; c'est-à-dire que le fichier exécutable ne peut pas être exécuté seul. Cela facilite la mise à niveau du point de vue de la mise à niveau des fonctions du produit. Il vous suffit de remplacer la bibliothèque dynamique correspondante sans avoir à recompiler l'intégralité du fichier exécutable.

En résumé, on ne voit pas que :

Du point de vue de la productisation, la bibliothèque d'algorithmes ou la bibliothèque de fonctions publiée doit être aussi dynamique que possible, de sorte qu'il soit pratique de la mettre à jour et de la mettre à niveau. recompilez l'intégralité du fichier exécutable, seule la nouvelle version est dynamique. La bibliothèque peut remplacer l'ancienne bibliothèque dynamique.

Du point de vue de l'intégration des bibliothèques de fonctions, si vous souhaitez intégrer toutes les sous-bibliothèques publiées (plus d'une) dans une bibliothèque dynamique pour fournir des interfaces externes, vous devez alors compiler toutes les sous-bibliothèques dans des bibliothèques statiques, afin que toutes Les sous-bibliothèques peuvent être compilées dans la bibliothèque dynamique cible et la bibliothèque intégrée finale fournit des fonctions au monde extérieur.

Pour plus de connaissances connexes, veuillez visiter la rubrique FAQ !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn