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

Visual C++ Discussion :

"unresolved external symbol" : impossible d'utiliser des bibliothèques statiques


Sujet :

Visual C++

  1. #1
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut "unresolved external symbol" : impossible d'utiliser des bibliothèques statiques
    Bonjour,

    Voilà quelque chose de surprenant et pour le moins gênant : je n'arrive pas à lier mes bibliothèques statiques (en l'ocurrence ici, un parseur XML portable) à -soi-disant- l'aide de Visual Studio, dans un projet MFC : des erreurs du type "unresolved external symbol" surviennent à chaque appel d'une fonction externe au projet.

    J'ai pourtant suivi à la lettre le walkthrough proposé par Microsoft en personne... la seule chose différant, étant l'ajout du projet de la bibliothèque statique à la solution de mon projet, et non l'inverse.

    Pourriez-vous m'aider, je vous prie ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    on peut voir les erreurs ?

  3. #3
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PlayTyleDlg.obj : error LNK2001: unresolved external symbol "public: struct XMLNode __thiscall XMLNode::getChildNode(char const *,int *)const " (?getChildNode@XMLNode@@QBE?AU1@PBDPAH@Z)
    PlayTyleDlg.obj : error LNK2001: unresolved external symbol "public: static struct XMLNode __cdecl XMLNode::openFileHelper(char const *,char const *)" (?openFileHelper@XMLNode@@SA?AU1@PBD0@Z)
    PlayTyleDlg.obj : error LNK2001: unresolved external symbol "public: char const * __thiscall XMLNode::getAttribute(char const *,int *)const " (?getAttribute@XMLNode@@QBEPBDPBDPAH@Z)
    PlayTyleDlg.obj : error LNK2001: unresolved external symbol "public: int __thiscall XMLNode::nChildNode(char const *)const " (?nChildNode@XMLNode@@QBEHPBD@Z)
    PlayTyleDlg.obj : error LNK2001: unresolved external symbol "public: struct XMLNode __thiscall XMLNode::getChildNode(char const *,int)const " (?getChildNode@XMLNode@@QBE?AU1@PBDH@Z)
    C:\Data\Work\PlayTyle\PlayTyle_final\PlayTyle\Release\PlayTyle.exe : fatal error LNK1120: 5 unresolved externals
    Voilà... pour info, j'essaie de compiler un projet utilisant cette bibliothèque, préalablement compilée (toujours suivant le walkthrough dont j'ai parlé plus haut).

    Edit: Aussi, je n'arrive pas à trouver comment compiler en ASCII, et non en UNICODE... sauriez-vous comment procéder (c'est pour filtrer un peu les warnings/erreurs de conversion entre LPSTR/LPTSTR) ? Merci.

  4. #4
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    Bonjour,

    1) Essaye dans un premier temps de passer le switch "/VERBOSE" (sans guillemets) au linker et regarde dans le log de sortie si le linker "voit" bien le répertoire où se trouve ta (ou tes) bibliothèque(s).

    Tu peux passer ce switch dans "ligne de commande" (propriétés du projet).

    Le linker va tout logguer dans la fenêtre d'ouput (généralement c'est assez long), on y voit les bibliothèque trouvées, les répertoires de recherche, etc. Ca permet de diagnostiquer ce qui ne va pas dans le type de problème que tu rencontre.

    Si tu vois le répertoire où se trouve ta bibliothèque apparaître dans le log, c'est que le linker ne voit pas la *.lib (faute de frappe dans le nom de la lib ?)

    si tu ne vois pas le répertoire, c'est que celui-ci n'est pas atteignable pour une raison ou une autre (faute de frappe dans le nom, problèmes de droit, etc.)

    Ca pourrait peut être un problème au niveau de la Runtime lib. Si ta lib est compilée pour une édition de lien en statique, essaye de mettre le CRT en /MT ou /MTd : Propriétés du projet > C/ C++ > génération de code > Runtime lib.

    Edit: Aussi, je n'arrive pas à trouver comment compiler en ASCII, et non en UNICODE... sauriez-vous comment procéder (c'est pour filtrer un peu les warnings/erreurs de conversion entre LPSTR/LPTSTR) ? Merci.
    Menu Projet > propriétés du projet.

    Dans la fenêtre de propriétés :

    Propriétés de config. > Général > Jeu de caractère.

    Tu as le choix entre Unicode (donc wchar_t et tout ce qui avec) et Multibyte (char)

    P.S : Pour les noms des menus c'est approximatif, je dispose d'une version U.S de VS.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 180
    Par défaut
    j'ai jamais utilise cette lib mais verifie quand meme que tu na pas de besoin de un namespace

Discussions similaires

  1. [debutant]unresolved external symbol
    Par Battosaiii dans le forum C
    Réponses: 11
    Dernier message: 02/12/2005, 16h25
  2. unresolved external symbol _IID_IDi
    Par PC23 dans le forum DirectX
    Réponses: 6
    Dernier message: 05/08/2005, 10h38
  3. PB de buil : unresolved external symbol
    Par dede92 dans le forum Windows
    Réponses: 8
    Dernier message: 13/12/2004, 11h21
  4. unresolved external symbol _IID_IDirectDraw7
    Par lvdnono dans le forum DirectX
    Réponses: 2
    Dernier message: 15/06/2004, 21h05
  5. Réponses: 4
    Dernier message: 23/04/2004, 16h06

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