[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:
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:
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).