salut,
je voudrai bien poser deux questions:
la prtemière c'est comment generer des bibliothèques dynamiques .so?
et quelle la différence entre les bibliothèques dynamiques et statiques?
merci d'avance?
salut,
je voudrai bien poser deux questions:
la prtemière c'est comment generer des bibliothèques dynamiques .so?
et quelle la différence entre les bibliothèques dynamiques et statiques?
merci d'avance?
yo,
Pour ta première question, je pense que tu trouveras ton bonheur ici ;
> http://www.tldp.org/HOWTO/Program-Li...ies.html#AEN95
Pour ce qui concerne ta deuxième question, l'idée générale est que la bibliothèque dynamique (ou plus précisement la "fonction" appellée contenue à l'intèrieur) est appellée par un programme pendant son éxecution. Elle est chargé en mémoire seulement en cas de besoin.
Pour la bibliothèque partagée je suis moins sur, mais il me semble qu'il s'agisse d'une bibliothèque commune à plusieurs programme, possédant également des "fonctions", "classes" ou ce que tu veux. L'atout étant que chaque programme peut utiliser cette bibliothèque sans se soucier des actions des autres programmes sur cette dernière.
Si quelqu'un peut confirmer! :p
il a déjà été plusieurs fois répondu à cette question..
Une recherche (en particulier ici, sur l'autre forum Linux (général développements -> Programmation Linux) ou sur le forum C (C et C++ -> C)) te donnera tout ce qui est nécessaire.
En gros, quand tu lies un objet avec une bibliothèque statique, tu copies le code la fonction référencée DANS ton code au moment de l'édition de liens.
Si c'est une bibliothèque dynamique, tu copies dans ton code l'adresse de cette fonction dans la biblothèque (un "jump" direct).
En résumé, l'usage d'une bibliothèque statique rend le binaire plus gros mais autonome, l'usage d'une biblothèque dynamique rend le binaire plus petit mais non autonome car il lui faut la bibliothèque au runtime.
Une bibliothèque dynamique == DLL
Partager