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 :

Invocation bibliothèque dynamique makefile


Sujet :

Linux

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pérou

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Invocation bibliothèque dynamique makefile
    Bonjour à tous,

    J'ai créé une bibliothèque dynamique "libconvert.so.1.0" avec un soname "libconvert.so.1". J'utilise Linux Ubuntu 11.1.

    Lorsque je veux compiler un exécutable en passant à gcc cette bibliothèque avec son nom complet (sans l'option -l) ou son soname (sans l'option -l), celui ne ne la trouve pas. J'indique pourtant la bonne route complète à gcc grâce à l'option -L

    Pour que mon programme compile je dois indiquer la route complète à gcc ou créer un lien manuel libconvert.so.1.0 -> libconvert.so grâce à ln et utiliser l'option -l de gcc.

    En bref: (Compilation de l’exécutable, les .o sont créés)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(CC) $(CFLAGS) $^ -L$(DSHLIB) libconvert.so.1.0 -o $@
    Ne compile pas...
    "libconvert.1.0 No such file or directory"



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(CC) $(CFLAGS) $^ -L$(DSHLIB) libconvert.so.1 -o $@
    Après exécution de ldconfig pour creer le lien soname.
    Ne compile pas...
    "libconvert.1 No such file or directory"



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(CC) $(CFLAGS) $^ -L$(DSHLIB) $(DHLIB)/libconvert.so.1 -o $@
    Apres execution de ldconfig pour creer le lien soname.
    Compile!



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(CC) $(CFLAGS) $^ -L$(DSHLIB) lconvert.so -o $@
    Après exécution de "ln -sf $(DSHLIB)/libconvert.so.1.0 $(DSHLIB)/libconvert.so" .
    Compile!

    Je ne comprends pas vraiment pourquoi dans les 2 premiers cas gcc ne trouve pas la bibliothèque. J'aimerais bien comprendre, cela va à l'encontre des tutoriels que j'ai lu.
    Pour information la route que je passe à l'option -L de gcc est la bonne j'ai vérifié plusieurs fois.

    Si vous avez une idée ou si vous avez déjà rencontré ce problème, votre aide est la bienvenue.

    Merci!

  2. #2
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pérou

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    En d'autres termes, la question serait:

    Comment compiler un exécutable avec gcc en invoquant une bibliothèque, sans l'option -l, et qui se situe dans un autre dossier que l’exécutable à compiler ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/05/2012, 11h48
  2. creation bibliothéque dynamique
    Par scorpion06 dans le forum C++
    Réponses: 4
    Dernier message: 19/04/2007, 14h09
  3. Question sur les bibliothques dynamiques
    Par inh40 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 11/04/2007, 15h16
  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