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

C Discussion :

Problème avec les libraires dynamiques


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 11
    Par défaut Problème avec les libraires dynamiques
    Bonjour,

    J'ai crée une librairie dynamique libelfutils.so dans le repertoire "mon_rep" contenant la fonction get_ELF_Flags. Le .h est aussi dans mon_rep
    Je compile des modules chips.o à partir de plusieurs autres fichiers.o venant de fichiers .c dont un qui utilise la fonction get_ELF_flags (pas de probleme d'include).
    Les fichiers C sont compilés ainsi:

    gcc -I/mon_rep fichier.c

    puis j'obtiens chips.o de la facon suivante:

    ld -r -o chips.o fichier.o fichier2.o ...

    Enfin mon binaire final s'obtient grace aux differents chips.o:

    gcc -o binaire -L/mon_rep -lelfutils chips1.o chips2.o ...

    Hélas, cette derniere commande ne fonctionne pas et j'ai l'erreur suivante:

    fichier4.c:1423: undefined reference to `get_ELF_Flags'

    J'ai donc essayé de linker la librairie a l'etape d'avanti:

    ld -r -L/mon_rep -lelfutils -o chips.o fichier.o fichier2.o ...

    Et la j'ai l'erreur:

    ld: cannot find -lelfutils --> ??? (j'ai verifié, pas de coquille dans les noms etc...).

    Je ne sais pas comment faire au final!
    Quequ'un a une idée et saurais m'expliquer le problème?
    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Heu un fichier *.so est une DLL à la façon Unix donc, inutile d'essayer de la compiler avec ton projet, tout ce qu'il te faut, c'est de créer une liaison dans ton programme avec cette lib. La GLib (voir le module GModule) propose quelques fonctions pour créer un symbole dans ton programme qui te permet d'acceder aux fonctions de ta lib, sinon il faut utiliser les fonctions fournies dans le fichier dlfcn.h !

    Il va de soi que si tu veut que ton programme trouve la lib à l'exécution, il te faut la mettre soit dans le repertoire par excellence qu'est /usr/lib/ soit la mettre où tu veut et éditer la variable d'environnement LD_LIBRARY_PATH en lui donnant le chemin où tu as mis la lib !

    Pour d'autres éventuelles infos: http://ftp.traduc.org/doc-vf/gazette...84/lg84-A.html


    J'espère avoir pû aider
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 11
    Par défaut
    Salut,
    Je ne cherche pas a compiler le .so...
    J'arrive a m'en servir dans le cas classique (je compile un .c qui l'utilise avec les -l et -L qui vont bien).
    Mais la le fait de passer par deux .o successifs (fichiers.o puis chips.o) a l'air de mal tourner et je ne vois pas trop pourquoi... Et malheureusement je n'ai pas le choix c'est dans dans le cadre d'un gros projet ou je ne peux pas tous chambouler comme je voudrais.
    Merci pour ton aide.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 11
    Par défaut
    Problème finalement résolu et ce n'etait pas un problème de link!
    J'ai ecris ma libraire elfutils en C++ et ai oublié le ifdef __cplusplus ...
    Désolé si je vous ait fait perdre du temps...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec les vignettes dynamique
    Par ajira83000 dans le forum Windows 8
    Réponses: 1
    Dernier message: 22/11/2012, 11h46
  2. [Débutant] Problème avec les contrôles dynamiques
    Par lotus006 dans le forum VB.NET
    Réponses: 0
    Dernier message: 04/03/2012, 21h33
  3. Problème avec les ids dynamique:
    Par hector_le_dresseur dans le forum JSF
    Réponses: 2
    Dernier message: 13/11/2009, 08h43
  4. [FPDF] problème avec les images dans un tableau dynamique
    Par GADSN dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 08/04/2009, 11h11
  5. Problème avec les checkbox dynamiques
    Par 20304995 dans le forum Langage
    Réponses: 2
    Dernier message: 17/05/2007, 18h00

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