Domanda

Così sto cercando di collegare in modo statico Xerces 3.0.0 su Linux.

L'ho fatto già con collegamento dinamico e funziona, ma al fine di evitare dipendenza voglio farlo in modo statico.

ho cambiato tutti i file di make per farlo in modo appropriato

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

Ma sto ottenendo i seguenti errori:

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

Ho sistemato quelli con metodo della forza bruta trovai qui

Ma c'era un altro tipo di errori relativi a 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'

Sembra che la sua pthread manca così ho provato ad aggiungere, ma che non risolve il problema ... Questi errori vengono da Xerces ... ed versione dinamica funziona un bel statica sta venendo a mancare.

Tutte le idee ???

Grazie

È stato utile?

Soluzione

La versione dinamica dei xerces avrà dipendenze libpthread che garantiscono il caricatore riprenderà il libreria corretta.

Specifica libphtread sulla linea di comando del linker dovrebbe risolvere questi esterni non risolti, l'avete fatto (a) mettere in al posto giusto sulla riga di comando, come le questioni di ordinazione e (b) avete provato le versioni sia la statica e dinamica di libpthread?

Altri suggerimenti

L'ordine dei lib legata questioni per il linker, provare a cambiare l'ordine di lib pthread.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top