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