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 :

Shared Library Linux


Sujet :

Linux

  1. #1
    Membre habitué Avatar de chercheur111
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 352
    Points : 163
    Points
    163
    Par défaut Shared Library Linux
    Bonjour,

    J'ai généré une bibliothèque libhello.so qui contient une fonction qui affiche un message "hello world"
    J'ai ensuite lié mon programme à cette bibliothèque , mais ce programme n'appelle pas cette fonction
    Pour que le message "hello world" s'affiche, faut-il que ce programme appelle cette fonction ?
    S'il le faut , y a t-il une autre solution qui permet cet affichage sans toucher à mon programme?

    Merci
    La science ne connaît qu'une loi: la contribution scientifique.

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Je suppose que tu n'as installé ta bibliothèque dans les répertoires usuels. l'option -I (entre autre) de gcc te permet de spécifier les répertoires où le compilateur pourra trouver les bibliothèques que tu veux utiliser.

    Il existe d'autres possibilités pour indiquer à gcc les différents emplacements : voir http://www.linux-kheops.com/doc/man/....1.html#sect10

  3. #3
    Membre habitué Avatar de chercheur111
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 352
    Points : 163
    Points
    163
    Par défaut
    J'ai mis cette bibliothèque dans le même répertoire que mon programme.
    Pour être plus claire, mon problème est le suivant:
    j'ai un programme (l'exécutable et pas la source), dans le code source il n'y a pas l'appel à la fonction hello ni en #include
    J'ai procédé comme suit:
    Pour générer la bibliothèque: gcc -shared -ldl -fPIC hello.c libhello.so
    La liaison entre le programme et la bibliothèque: LD_PRELOAD=/home/chercheur/libhello.so ./programme
    ----> Pas d'affichage du message

    Si c'est pas possible de faire cette liaison, est-ce qu'il y a une autre solution pour afficher le message de la fonction hello ?


    Merci
    La science ne connaît qu'une loi: la contribution scientifique.

Discussions similaires

  1. Shared Library linux
    Par chercheur111 dans le forum Linux
    Réponses: 1
    Dernier message: 22/02/2012, 00h21
  2. GDB et Shared Library
    Par TheTof dans le forum Linux
    Réponses: 4
    Dernier message: 29/03/2009, 00h47
  3. [installation 9i] error while loading shared library
    Par ChristopheH dans le forum Installation
    Réponses: 3
    Dernier message: 19/07/2006, 17h36
  4. GDB : Error while mapping shared library sections
    Par FrigoAcide dans le forum GDB
    Réponses: 1
    Dernier message: 09/05/2006, 11h06
  5. Réponses: 2
    Dernier message: 05/02/2004, 13h58

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