La différence entre la liaison statique et dynamique de la liaison
Quelle est la différence entre la liaison statique et dynamique de la liaison?
Ce n'est pas une copie exacte. Il y a vraiment trois possibilités: la liaison statique, dynamique au moment du chargement de la liaison, et le temps d'exécution de la liaison dynamique. L'autre question est de demander à propos de la différence entre la deuxième et la troisième, alors que c'est parler de la différence entre le premier et un groupe de la deuxième et de la troisième prises ensemble.
OriginalL'auteur anand | 2010-11-11
Vous devez vous connecter pour publier un commentaire.
Liaison statique est fait au 'moment de la compilation" par un outil appelé un éditeur de liens. La liaison dynamique est effectué au moment de l'exécution, par le système d'exploitation.
page non trouvé 🙁
La liaison dynamique est également faite par un éditeur de liens.
OriginalL'auteur Will Dean
En liaison statique, de variables et de fonctions qui sont définies dans des fichiers de bibliothèque externes sont liés à l'intérieur de votre exécutable. Cela signifie que le code est en fait lié à l'encontre de votre code lors de la compilation/édition de liens.
Avec la liaison dynamique des fonctions externes que vous utilisez dans votre logiciel ne sont pas liées à l'encontre de votre exécutable. Au lieu de cela, ils résident dans une bibliothèque externe des fichiers, qui ne sont référencés par votre logiciel. C'est à dire: le compilateur/linker charge le logiciel sur où trouver les fonctions utilisées.
Sur les plates-formes windows, vous pouvez même charger explicitement les fichiers DLL au moment de l'exécution et de brancher les fonctions contenues dans la DLL.
OriginalL'auteur Dexter
liaison statique augmenter la taille du fichier de votre programme, et il peut augmenter la taille du code en mémoire si d'autres applications sont en cours d'exécution sur le système...
sur l'autre main dynamique liée programme prennent moins de place et moins de mémoire virtuelle
OriginalL'auteur Akanksha Tiwari
En liaison statique des bibliothèques liées au moment de la compilation, mais la taille du code est plus lorsque cette liaison statique ,quand vous avez seulement un ou deux programmes que vous utilisez la liaison statique
Dans les bibliothèques de liaison dynamique liée au moment de l'exécution(ou) le temps d'exécution ,mais la taille du code est de moins en moins,quand vous avez plus de programmes, puis utiliser la liaison dynamique.
execution time
etrun time
?OriginalL'auteur Maheswar reddy
Si nous compilons simple helloworld programme statique et dynamique de la liaison, nous allons facilement voir la différence de taille ci-dessous,
Créer une dynamique liée exécutable que,
Aussi, créer un exécutable lié statiquement que,
par conséquent, les observations de l'exécution d'un simple programme helloworld sont comme ci-dessous,
Un exécutable lié statiquement nécessite plus d'espace par rapport à un exécutable dynamiquement lié. Le est un inconvénient de la liaison statique et l'avantage de la liaison dynamique.
Une seule copie d'une bibliothèque partagée réside dans la mémoire dynamique-exécutables liés. Si plusieurs processus d'appel de la même module objet d'une bibliothèque partagée simultanément, ils utilisent tous la même copie de la bibliothèque. Alors que, pour la liaison statique, tous les objets utilisés d'une bibliothèque sont copiés dans chaque fichier exécutable. Ainsi, des copies de chaque objet de la bibliothèque résident dans la mémoire de chacun des différents processus. Il en résulte plus de RAM utilisé pour la statique-exécutables liés de façon dynamique-exécutables liés.
La liaison dynamique a plus d'appels système, ce qui signifie de façon dynamique-exécutables liés aurez besoin de plus de temps pour l'exécution ou l'exécution.
Si vous voulez une explication plus complète, avec système de traçage des appels à l'aide de
strace
au cours de l'exécution du programme, vous pouvez visite d'une page, j'ai écrit à propos de ce problème sur mon site.merci pour les suggestions, c'était mon premier post. Corrigé les réponses, veuillez vérifier les et laissez-moi savoir si tous les commentaires / suggestions.
OriginalL'auteur Linuxdev