cs_svince
Messages postés48Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention16 février 2013
-
16 juil. 2010 à 15:43
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
23 juil. 2010 à 07:55
Bonjour à toutes et à tous,
Je travaille sous Windows sous Eclipse CDT.
J'ai créé une dll à partir d'un premier projet. Cette dll intègre elle-même une autre dll (que j'appellerai ici dllUtilitaire).
Je souhaite utiliser la dll du premier projet dans un second projet. J'ai donc mis dans le second projet les .h du premier projet et ai linké avec la dll que j'avais générée.
Il est à noter que le second projet utilise lui-aussi dllUtilitaire.
D'autre part, mon projet utilise des namespaces.
Lors du link, j'ai des "multiple definition of..." qui apparaissent lors de la phase de link. Pourtant, j'ai a priori des "#ifndef" partout...
Auriez-vous des idées de causes possibles d'erreur ?
Merci !
cs_svince
Messages postés48Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention16 février 20131 19 juil. 2010 à 17:23
Petit complément : les messages d'erreurs que me renvoie Eclipse CDT, si ça peut aider...
"d000023.o:(.idata$5+0x0): multiple definition of `__imp___ZTIN11xercesc_2_512XMLExceptionE'
d000014.o:(.idata$5+0x0): first defined here
d000023.o:(.idata$6+0x0): multiple definition of `__nm___ZTIN11xercesc_2_512XMLExceptionE'
d000014.o:(.idata$6+0x0): first defined here
d000024.o:(.idata$5+0x0): multiple definition of `__imp___ZTIN11xercesc_2_513XMLEntityDeclE'
d000015.o:(.idata$5+0x0): first defined here
d000024.o:(.idata$6+0x0): multiple definition of `__nm___ZTIN11xercesc_2_513XMLEntityDeclE'
d000015.o:(.idata$6+0x0): first defined here
d000025.o:(.idata$5+0x0): multiple definition of `__imp___ZTIN11xercesc_2_517SAXParseExceptionE'
d000016.o:(.idata$5+0x0): first defined here
d000025.o:(.idata$6+0x0): multiple definition of `__nm___ZTIN11xercesc_2_517SAXParseExceptionE'
d000016.o:(.idata$6+0x0): first defined here
d000026.o:(.idata$5+0x0): multiple definition of `__imp___ZTISt9bad_alloc'
/usr/lib/gcc/i686-pc-cygwin/4.3.4/libstdc++.dll.a(d003157.o):(.idata$5+0x0): first defined here
d000026.o:(.idata$6+0x0): multiple definition of `__nm___ZTISt9bad_alloc'
/usr/lib/gcc/i686-pc-cygwin/4.3.4/libstdc++.dll.a(d003157.o):(.idata$6+0x0): first defined here
d000027.o:(.idata$5+0x0): multiple definition of `__imp___ZTISt9exception'
/usr/lib/gcc/i686-pc-cygwin/4.3.4/libstdc++.dll.a(d003160.o):(.idata$5+0x0): first defined here
d000027.o:(.idata$6+0x0): multiple definition of `__nm___ZTISt9exception'
/usr/lib/gcc/i686-pc-cygwin/4.3.4/libstdc++.dll.a(d003160.o):(.idata$6+0x0): first defined here
d000055.o:(.idata$5+0x0): multiple definition of `__imp___ZTI9XMLparser'
d000022.o:(.idata$5+0x0): first defined here
d000055.o:(.idata$6+0x0): multiple definition of `__nm___ZTI9XMLparser'
d000022.o:(.idata$6+0x0): first defined here
collect2: ld returned 1 exit status
make: *** [MonProgramme.exe] Error 1
make: Target `all' not remade because of errors."
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 23 juil. 2010 à 07:55
Salut,
Bin on dirait que ce ne sont pas des symboles de chez toi, mais des symboles de xerces et de la lib stdc++.
Ca doit pouvoir s'esquiver avec -Wl,--allow-multiple-definition (gcc).
Mais bon c'est un peu dangereux d'utiliser cette option.
C'est un peu comme si tu linkais avec des librairies qui proposent les mêmes symboles (Genre link à la fois sur la lib statique et sur la lib dynamique).