Frage

Also ich statisch versuche verknüpfen Xerces 3.0.0 auf Linux.

Ich habe es schon mit Dynamic Link und es funktioniert, aber um zu vermeiden, dependancy will ich es statisch tun.

ich all die make-Dateien verändern es in geeigneter Art und Weise zu tun,

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

Aber ich folgenden Fehler bekommen:

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

Ich reparierte die mit Brute-Force-Methode gefunden hier

Aber es war eine andere Art von Fehler xerces Zusammenhang stehen.

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'

Es scheint, wie seine fehlenden Pthread so dass ich es versuchte, indem aber, dass das Problem nicht beheben ... Diese Fehler kommen aus Xerces ... und dynamische Version funktioniert statisch versagt.

Irgendwelche Ideen ???

Danke

War es hilfreich?

Lösung

Die dynamische Version der xerces werden Abhängigkeiten von libpthread haben, die den Lader gewährleisten die korrekte Bibliothek abholen.

Die Angabe libphtread auf Ihrem Linker Befehlszeile sollte diese nicht aufgelösten externen beheben, haben Sie (a) in der Befehlszeile wie die Ordnungsangelegenheiten in der richtigen Stelle und (b) haben Sie versuchen, die sowohl die statischen als auch dynamischen Versionen libpthread?

Andere Tipps

Die Reihenfolge der lib verknüpft Angelegenheiten für den Linker, versuchen Sie den Auftrag für pthread lib zu ändern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top