Question

Je suis en train de lier statiquement Xerces 3.0.0 sur Linux.

Je l'ai fait déjà avec lien dynamique et il fonctionne, mais afin d'éviter que je veux dépendance faire statiquement.

J'ai changé tous les fichiers de apporterez 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 trouvai

Mais il y avait un autre type d'erreurs liées à 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 d'une statique échoue.

Toutes les idées ???

Merci

Était-ce utile?

La solution

La version dynamique des Xerces aura des dépendances sur libpthread qui assurent le chargeur va ramasser la bibliothèque correcte.

Spécification libphtread sur votre ligne de commande de linker devrait corriger ces externals non résolues, avez-vous (a) mis en au bon endroit sur la ligne de commande que les questions de commande et (b) avez-vous essayé les deux versions de statiques et dynamiques libpthread?

Autres conseils

L'ordre des questions de lib liées à l'éditeur de liens, essayez de changer l'ordre de pthread lib.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top