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 :

Lier bibliothèque dynamique


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 26
    Points
    26
    Par défaut Lier bibliothèque dynamique
    Bonjour à tous,

    Désolé si le problème a déjà été abordé mais je n'ai rien réussi à trouver (et comprendre !) sur le sujet qui puisse résoudre mon problème.

    Tout d'abord je précise que je travaille sous Mac OS X 10.4 (PPC) et Netbeans 6.7 (C/C++).

    Voici mon problème : j'ai deux projets, le premier est configuré pour compiler une bibliothèque dynamique (.dylib) et le second est un projet console (avec un main) qui me sert à tester ma dylib. Seulement problème : impossible d'appeler les fonctions de ma dylib depuis mon projet de test. En effet, lorsque je le compile, j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: Undefined symbols:
    _getContact
    collect2: ld returned 1 exit status
    Sachant, que dans mon main de test, j'inclus bien le header de ma bibliothèque contenant les prototypes de fonctions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "../AddressBook/AddressBook.h"
    Après je ne sais pas trop comment modifier mon makefile pour qu'il prenne en compte ma bibliothèque... J'ai fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${LINK.cc} -L../AddressBook/dist/Debug/GNU-MacOSX -IlibAddressBook.dylib -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/testapp ${OBJECTFILES} ${LDLIBSOPTIONS}
    Mais ça n'as pas l'air d'être bon puisqu'il me sort une erreur à la compilation. Si quelqu'un pouvait m'aider...

    Merci d'avance.

  2. #2
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Ajoute un
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    Salut,

    A quoi correspond ton ${LDLIBSOPTIONS} ? Est ce qu'il contient -lAddressBook ? Et sinon, le -I sert à ajouter des répertoires pour trouver les header, libAddressBook.dylib est-il un répertoire ?

    @+, bon courage
    Avec les ordinateurs, 99% des bugs proviennent de l'interface chaise-clavier...

    Comment ça 1Km n'est pas égal à 1024m ???

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Merci pour vos réponses.
    J'ai rajouté -lAddressBook et ça marche.
    ${LDLIBSOPTIONS} ne correspond à rien, ça a été ajouté automatiquement par netbeans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Link Libraries and Options
    LDLIBSOPTIONS=
    Sinon libAddressBook.dylib n'est pas un répertoire, c'est ma bibliothèque dynamique (je suis sous mac), du coup j'ai viré mon -I, je pensais que c'était pour spécifier ça... (rtfm comme disais l'autre ).

    En tout cas, merci encore pour vos réponses.

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

Discussions similaires

  1. Bibliothèques dynamiques et multithreading!
    Par vonemya dans le forum Visual C++
    Réponses: 2
    Dernier message: 25/10/2007, 17h55
  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