所以我试图在linux上静态链接Xerces 3.0.0。
我已经用动态链接做了它并且它有效,但为了避免依赖我想静态地做它。
我更改了所有的制作文件以适当的方式进行
-Wl,-Bstatic ... -lxerces-c -Wl,-Bdynamic ...
但我收到以下错误:
undefined reference to '__ctype_b'
undefined reference to '__ctype_tolower'
undefined reference to '__ctype_toupper'
我用这里找到的蛮力方法修复了那些
但是还有另一种与 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'
它似乎缺少pthread,所以我尝试添加它,但这并不能解决问题......这些错误来自Xerces......并且动态版本工作正常静态一个失败。
有任何想法吗???
谢谢