J'essaie donc de lier statiquement Xerces 3.0.0 sous linux.xerces 3.0.0 lié statiquement ne fonctionne pas pendant que la dynamique fonctionne sous Linux
Je l'ai déjà fait avec un lien dynamique et cela fonctionne, mais pour éviter la dépendance je veux le faire de façon statique.
j'ai changé tous les fichiers make pour le faire de manière appropriée
-Wl,-Bstatic ... -lxerces-c -Wl,-Bdynamic ...
Mais je reçois des erreurs suivantes:
undefined reference to '__ctype_b'
undefined reference to '__ctype_tolower'
undefined reference to '__ctype_toupper'
Je fixe ceux avec la méthode de la force brute trouvé here
Mais il y avait un autre type d'erreur liée à xerces.
Xerces/3.0.0/lib/libxerces-c.a(PosixMutexMgr.o):
In function `xercesc_3_0::PosixMutexMgr::create(xercesc_3_0::MemoryManager*)':
PosixMutexMgr.cpp:(.text+0x84): undefined reference to `pthread_mutexattr_init'
PosixMutexMgr.cpp:(.text+0x95): undefined reference to `pthread_mutexattr_settype'
PosixMutexMgr.cpp:(.text+0xad): undefined reference to `pthread_mutexattr_destroy'
PosixMutexMgr.cpp:(.text+0xd0): undefined reference to `pthread_mutexattr_destroy'
Il semble que son pthread manque donc j'ai essayé d'ajouter, mais cela ne résout pas le problème ... Ces erreurs proviennent de Xerces ... et la version dynamique fonctionne très bien statique échoue.
Des idées ???
Merci
Eh bien, j'ai ajouté -lpthread après -Wl, -Bstatic. – grobartn
Je n'ai pas essayé la version dynamique de pthread lib. Mais je vais essayer aussi – grobartn
Avez-vous ajouté -lpthread avant ou après -lxerces-c? IIRC il doit aller * après *, si vous le mettez avant alors l'ordre est faux et vous aurez toujours les symboles non résolus. –