IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

[C - Linux] Gestion bibliothèques dynamiques


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 65
    Par défaut [C - Linux] Gestion bibliothèques dynamiques
    Bonjour à tous,

    J'ai trouvé comment utiliser les librairies dynamiques à l'aide de la bibliothèque dlfcn.h.

    Néanmoins, d'après ce que j'ai compris, cela permet uniquement de récupérer des pointeurs de fonctions contenues dans une bibliothèque .so.

    Est-il possible de récupérer les entêtes de ces fonctions, ou doit-on les réécrire en dur dans le fichier .h de notre programme

    Autre question, si la librairie contient des typedef, des structures ou des enums, est-on obligé de les réécrire dans notre fichier .h ou est-il possible de les récupérer ?

    Merci de vos réponses

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    euh....

    je crois que tu mélanges tout...

    Une librairie dynamique est, sur Linux, utilisable comme une librairie statique : mêmes fichiers d'entêtes (donc mêmes inclusions des typefs, structures, prototypes), mêmes procédures de compilation et édition de lien.

    Sauf cas exceptionnels où on veut la loader explicitement à un endroit précis de l'application, du moment que la librairie dynamique est installée sur le système dans le bon répertoire, elle est reconnue. Le compilateur inscrit dans le binaire le saut à l'adresse physique correspondante, au lieu de recopier le code comme dans le cas d'ne librairie statique.

    Du point de vue du progammeur, à part le cas exceptionnel cité, il n'y a aucune différence entre dynamique et statique...

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 65
    Par défaut
    Effectivement je m'étais mélangé les pinceaux. Pour moi, je pensais:

    fichier so = ouverture en dynamique dans le programme pour chaque fonction.

    J'ai découvert après que, si on avait le fichier .h et que le fichier .so était au bon endroit, ça s'utilisait comme un couple .c/.h.

    Merci tout de même pour l'info

Discussions similaires

  1. Gestion de bibliothèques dynamiques.
    Par spydemon dans le forum Général Python
    Réponses: 6
    Dernier message: 22/07/2013, 10h23
  2. Réponses: 5
    Dernier message: 22/05/2012, 11h48
  3. Application web:Gestion Bibliothéque
    Par alaweb dans le forum UML
    Réponses: 4
    Dernier message: 09/03/2007, 01h33
  4. Chargement bibliothèques dynamiques
    Par Snark dans le forum C++
    Réponses: 3
    Dernier message: 15/12/2006, 15h49
  5. Problème avec la "Gestion des bibliothèques dynamiques"
    Par GoustiFruit dans le forum Delphi
    Réponses: 15
    Dernier message: 31/05/2006, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo