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 :

Erreur LNK2001 inexplicable


Sujet :

Visual C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut Erreur LNK2001 inexplicable
    Bonjour,

    je travaille sur un projet en C++ sous VC++ 6.0, impliquant l'utilisation du parseur XML Xerces-C.

    Pour pouvoir en utiliser les fonctions, j'ai suivi la doc présente sur le site d'Apache ; j'ai donc mis le header

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include <xercesc/util/PlatformUtils.hpp>
    et ajouté, dans Tools -> Options -> Directories le répertoire ou se trouvent les librairies de Xerces-C...

    Je teste donc les fonctions basiques d'initialisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
    	XMLPlatformUtils::Initialize();
    	}
    	catch (const XMLException& toCatch) {
        // etc...
    Et là, à la compil, problème :

    EPLlicense.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static void __cdecl xercesc_2_7::XMLPlatformUtils::Terminate(void)" (__imp_?Terminate@XMLPlatformUtils@xercesc_2_7@@SAXXZ)
    Truc.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static void __cdecl xercesc_2_7::XMLPlatformUtils::Initialize(char const * const,char const * const,class xercesc_2_7:anicHandler * const,class xercesc_2_7::
    MemoryManager * const,bool)" (__imp_?Initialize@XMLPlatformUtils@xercesc_2_7@@SAXQBD0QAVPanicHandler@2@QAVMemoryManager@2@_N@Z)
    Truc.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static char const * const xercesc_2_7::XMLUni::fgXercescDefaultLocale" (__imp_?fgXercescDefaultLocale@XMLUni@xercesc_2_7@@2QBDB)
    Debug/XML.exe : fatal error LNK1120: 3 unresolved externals
    Error executing link.exe.
    Je ne comprends pas le problème. Je ne suis pas familier de VC++, peut-être ai-je oublié quelque chose mais je ne l'ai pas trouvé dans la FAQ.

    Merci de votre aide...

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    t'as du oublier la lib

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    C'est-à-dire, peux-tu être plus précis ?

    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
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    et ajouté, dans Tools -> Options -> Directories le répertoire ou se trouvent les librairies de Xerces-C...
    Il faudra aussi dire à l'éditeur de lien (linker) quelles sont les bibliothèques (*.lib) qui contiennent les fonctions ad-hoc.

    En d'autres termes, si le linker possède le bon dossier avec les bonnes *.lib, il faut en plus lui dire quelles sont les *.lib sur lesquelles il va devoir faire l'édition de lien.

    Tu peux le notifier au linker, cf. :

    Project -> Properties -> Configuration Properties -> Linker -> Input -> Additionnal Dependencies.

    Pour le dossier des libs, mieux vaut le faire par projet (sinon le dossier est valable pour tous les projets que tu créera, ce qui n'est pas forcément ce qu'on souhaite) :

    Project -> Properties -> Configuration Properties -> Linker -> General -> Additional Library Directories.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Merci, mais on ne doit pas avoir la même version de VC++; je n'ai pas les options dont tu parles dans le menu Project...

    J'ai tenté de rajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #pragma comment(lib, "xerces-c_2.lib")
    #pragma comment(lib, "xerces-depdom_2.lib")
    (ce sont les seuls .lib dont je dispose, après je les ai récupérés un peu à l'arrache, alors...)

    mais ça me sort une erreur à l'exécution (xerces-c_2_7.dll non trouvée)

    Je sais que j'abuse, mais serait-il possible d'avoir un "mini-tuto" de la marche à suivre ?

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    il faut que xerces-c_2_7.dll soit dans le meme repertoire que ton exe ou dans le path

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    C'est bon, ça a l'air de marcher. Merci !

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

Discussions similaires

  1. Erreur LNK2001 sur qsort
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 15/05/2007, 22h02
  2. [Debutant] Erreur LNK2001 sous Visual.Net.
    Par Carosmagor dans le forum Visual C++
    Réponses: 9
    Dernier message: 11/05/2006, 07h36
  3. erreur LNK2001
    Par aminevr dans le forum MFC
    Réponses: 5
    Dernier message: 23/06/2005, 09h43
  4. debutant: erreur LNK2001 avec la librairie GSL
    Par drill3 dans le forum MFC
    Réponses: 6
    Dernier message: 25/04/2005, 13h58
  5. Réponses: 9
    Dernier message: 27/04/2004, 11h01

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