Pregunta

Así que estoy tratando de enlazar estáticamente Xerces 3.0.0 en Linux.

Ya lo hice con enlace dinámico y funciona, pero con el fin de evitar dependencia Quiero hacerlo de forma estática.

Me cambió todos los archivos make Para hacerlo en forma adecuada

-Wl,-Bstatic ... -lxerces-c -Wl,-Bdynamic ...

Pero estoy recibiendo errores siguientes:

  undefined reference to '__ctype_b'
  undefined reference to '__ctype_tolower'
  undefined reference to '__ctype_toupper'

Me fijo aquellos con método de fuerza bruta encontré aquí

Pero había otro tipo de errores relacionados con 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'

Parece que su falta pthread así que intentado añadir, pero eso no soluciona el problema ... Estos errores están viniendo de Xerces ... y versión dinámica funciona un buen estática está fallando.

¿Ideas ???

Gracias

¿Fue útil?

Solución

La versión dinámica de los xerces tendrá dependencias en libpthread que aseguren el cargador va a recoger la biblioteca correcta.

Especificación de libphtread en su línea de comandos enlazador debe fijar esas externos sin resolver, que hizo (a) poner en en el lugar correcto en la línea de comandos como los asuntos de pedidos y (b) ¿trató las versiones tanto la estática y dinámica de libpthread?

Otros consejos

El orden de los asuntos lib vinculado para el enlazador, pruebe a cambiar el orden para lib pthread.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top