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 :

[ERREUR LINK] LNK2019: symbole externe non résolu


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Points : 31
    Points
    31
    Par défaut [ERREUR LINK] LNK2019: symbole externe non résolu
    Bonjour,

    J'ai actuellement un problème que je n'arrive pas à résoudre : je dois intégrer une librairie statique d'extraction des métadonnées XMP pour l'utiliser en tant que module Mozilla (Firefox v.14) qui est une librairie dynamique (ss windows).

    Je compile ma librairie XMP (v6 écrite en c++) en suivant leurs instructions (c-a-d intégration de la lib. expat 1.95 écrite en c). Tout se passe bien, j'obtiens bien mon fichier .lib.
    Cependant, lorsque je compiles mon module XPCOM, j'ai droit à un paquet de fonctions externes non résolues :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetCommentHandler référencé dans la fonction "public: __thiscall
    ExpatAdapter::ExpatAdapter(bool)" (??0ExpatAdapter@@QAE@_N@Z)
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetProcessingInstructionHandler référencé dans la fonction "publi
    c: __thiscall ExpatAdapter::ExpatAdapter(bool)" (??0ExpatAdapter@@QAE@_N@Z)
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetCdataSectionHandler référencé dans la fonction "public: __this
    call ExpatAdapter::ExpatAdapter(bool)" (??0ExpatAdapter@@QAE@_N@Z)
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetCharacterDataHandler référencé dans la fonction "public: __thi
    scall ExpatAdapter::ExpatAdapter(bool)" (??0ExpatAdapter@@QAE@_N@Z)
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetElementHandler référencé dans la fonction "public: __thiscall
    ExpatAdapter::ExpatAdapter(bool)" (??0ExpatAdapter@@QAE@_N@Z)
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetNamespaceDeclHandler référencé dans la fonction "public: __thi
    scall ExpatAdapter::ExpatAdapter(bool)" (??0ExpatAdapter@@QAE@_N@Z)
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_SetUserData référencé dans la fonction "public: __thiscall ExpatA
    dapter::ExpatAdapter(bool)" (??0ExpatAdapter@@QAE@_N@Z)
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_ParserCreateNS référencé dans la fonction "public: __thiscall Exp
    atAdapter::ExpatAdapter(bool)" (??0ExpatAdapter@@QAE@_N@Z)
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_ParserFree référencé dans la fonction "public: virtual __thiscall
     ExpatAdapter::~ExpatAdapter(void)" (??1ExpatAdapter@@UAE@XZ)
    xmpcore.lib(ExpatAdapter.obj) : error LNK2019: symbole externe non résolu __imp__XML_Parse référencé dans la fonction "public: virtual void __thiscall
     ExpatAdapter::ParseBuffer(void const *,unsigned int,bool)" (?ParseBuffer@ExpatAdapter@@UAEXPBXI_N@Z)
    xmp.dll : fatal error LNK1120: 10 externes non résolus
    En analysant ce que le compilateur microsoft m'a dit, j'ai apparemment l'objet ExpatAdapter.obj qui ne trouve pas certaines fonctions d'expat. Or, en regardant la table des symboles de ma lib xmpcore (objdump -t), je retrouve ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    ../third-party/expat/lib/xmlparse.obj:     file format pe-i386
     
    SYMBOL TABLE:
    ...
    [109](sec  5)(fl 0x00)(ty  20)(scl   2) (nx 0) 0x00000ff0 _XML_SetCommentHandler
    ...
     
    ../XMPCore/source/ExpatAdapter.obj:     file format pe-i386
     
    SYMBOL TABLE:
    ...
    [251](sec  0)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x00000000 __imp__XML_SetCommentHandler
    ...
    Je n'arrive pas à comprendre cette erreur d'éditions des liens : quelqu'un pourrait-il m'aiguiller ?

    Merci.

    PS : à noter que je n'ai pas vu d'extern "C" dans xmlparse.c ni dans ExpatAdapter.cpp (mais Adobe n'en fait pas mention dans son readme).

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Tu as certainement omis une librairie parmi les options de compilations (enfin, d'édition de liens).
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 258
    Points
    258
    Par défaut
    bonjour,
    Question bête...mais on sait jamais.
    As tu bien référencé ton .lib lors de ton link ?

    EDIT.: décidément je suis trop lent...

Discussions similaires

  1. error LNK2019: symbole externe non résolu
    Par Halloula dans le forum Visual C++
    Réponses: 3
    Dernier message: 28/11/2009, 02h19
  2. error LNK2019: symbole externe non résolu
    Par bugmenot dans le forum Visual C++
    Réponses: 6
    Dernier message: 24/11/2009, 01h02
  3. error LNK2019: symbole externe non résolu "void __cdecl MaFonction
    Par lolo le belge dans le forum Visual C++
    Réponses: 3
    Dernier message: 30/10/2009, 11h38
  4. LNK2019: symbole externe non résolu __ftol2_sse
    Par ellipse dans le forum MFC
    Réponses: 1
    Dernier message: 26/04/2006, 23h48
  5. LNK2019 symbole externe non résolu
    Par devmat dans le forum MFC
    Réponses: 3
    Dernier message: 04/01/2006, 00h14

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