Hi, I'm using Xerces-c-3.0 in my project under Linux. I have several questions. 1. What are pros and cons of using ICU library as a Transcoder? 2. I want to create a static version of my application. I compiled Xerces with parameters *--enable-static --disable-shared*. But when I try to compile my application I get following linker's errors:
../plugins/basic/libbasic.a(BasicProjectPlugin.o): In function `xercesc_3_0::DTDEntityDecl::~DTDEntityDecl()': BasicProjectPlugin.cpp:(.text._ZN11xercesc_3_013DTDEntityDeclD0Ev[xercesc_3_0::DTDEntityDecl::~DTDEntityDecl()]+0x24): undefined reference to `xercesc_3_0::XMLEntityDecl::~XMLEntityDecl()' BasicProjectPlugin.cpp:(.text._ZN11xercesc_3_013DTDEntityDeclD0Ev[xercesc_3_0::DTDEntityDecl::~DTDEntityDecl()]+0x2c): undefined reference to `xercesc_3_0::XMemory::operator delete(void*)' ../plugins/basic/libbasic.a(BasicProjectPlugin.o): In function `xercesc_3_0::DTDEntityDecl::~DTDEntityDecl()': BasicProjectPlugin.cpp:(.text._ZN11xercesc_3_013DTDEntityDeclD1Ev[xercesc_3_0::DTDEntityDecl::~DTDEntityDecl()]+0x23): undefined reference to `xercesc_3_0::XMLEntityDecl::~XMLEntityDecl()' ../plugins/basic/libbasic.a(BasicProjectPlugin.o): In function `xercesc_3_0::HandlerBase::fatalError(xercesc_3_0::SAXParseException const&)': BasicProjectPlugin.cpp:(.text._ZN11xercesc_3_011HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_3_0::HandlerBase::fatalError(xercesc_3_0::SAXParseException const&)]+0x35): undefined reference to `xercesc_3_0::SAXParseException::SAXParseException(xercesc_3_0::SAXParseException const&)' BasicProjectPlugin.cpp:(.text._ZN11xercesc_3_011HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_3_0::HandlerBase::fatalError(xercesc_3_0::SAXParseException const&)]+0x3e): undefined reference to `xercesc_3_0::SAXParseException::~SAXParseException()' BasicProjectPlugin.cpp:(.text._ZN11xercesc_3_011HandlerBase10fatalErrorERKNS_17SAXParseExceptionE[xercesc_3_0::HandlerBase::fatalError(xercesc_3_0::SAXParseException const&)]+0x45): undefined reference to `typeinfo for xercesc_3_0::SAXParseException' ../plugins/basic/libbasic.a(BasicProjectPlugin.o): In function `xercesc_3_0::XMLAttDefList::~XMLAttDefList()': BasicProjectPlugin.cpp:(.text._ZN11xercesc_3_013XMLAttDefListD0Ev[xercesc_3_0::XMLAttDefList::~XMLAttDefList()]+0x23): undefined reference to `xercesc_3_0::XMemory::operator delete(void*)' ../plugins/basic/libbasic.a(BasicProjectPlugin.o):(.data.rel.ro._ZTVN11xercesc_3_013DTDEntityDeclE[vtable for xercesc_3_0::DTDEntityDecl]+0x10): undefined reference to `xercesc_3_0::DTDEntityDecl::isSerializable() const' ../plugins/basic/libbasic.a(BasicProjectPlugin.o):(.data.rel.ro._ZTVN11xercesc_3_013DTDEntityDeclE[vtable for xercesc_3_0::DTDEntityDecl]+0x14): undefined reference to `xercesc_3_0::DTDEntityDecl::serialize(xercesc_3_0::XSerializeEngine&)' ../plugins/basic/libbasic.a(BasicProjectPlugin.o):(.data.rel.ro._ZTVN11xercesc_3_013DTDEntityDeclE[vtable for xercesc_3_0::DTDEntityDecl]+0x18): undefined reference to `xercesc_3_0::DTDEntityDecl::getProtoType() const' ../plugins/basic/libbasic.a(BasicProjectPlugin.o):(.data.rel.ro._ZTVN11xercesc_3_013XMLAttDefListE[vtable for xercesc_3_0::XMLAttDefList]+0x10): undefined reference to `xercesc_3_0::XMLAttDefList::isSerializable() const' ../plugins/basic/libbasic.a(BasicProjectPlugin.o):(.data.rel.ro._ZTVN11xercesc_3_013XMLAttDefListE[vtable for xercesc_3_0::XMLAttDefList]+0x14): undefined reference to `xercesc_3_0::XMLAttDefList::serialize(xercesc_3_0::XSerializeEngine&)' ../plugins/basic/libbasic.a(BasicProjectPlugin.o):(.data.rel.ro._ZTVN11xercesc_3_013XMLAttDefListE[vtable for xercesc_3_0::XMLAttDefList]+0x18): undefined reference to `xercesc_3_0::XMLAttDefList::getProtoType() const' ../plugins/basic/libbasic.a(BasicProjectPlugin.o):(.data.rel.ro._ZTIN11xercesc_3_013DTDEntityDeclE[typeinfo for xercesc_3_0::DTDEntityDecl]+0x8): undefined reference to `typeinfo for xercesc_3_0::XMLEntityDecl' ../plugins/basic/libbasic.a(Project.o): In function `Project::validateSchema()': Project.cpp:(.text+0x652): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' Project.cpp:(.text+0x66a): undefined reference to `xercesc_3_0::XMLString::transcode(char const*, unsigned short*, unsigned int, xercesc_3_0::MemoryManager*)' Project.cpp:(.text+0x672): undefined reference to `xercesc_3_0::DOMImplementationRegistry::getDOMImplementation(unsigned short const*)' Project.cpp:(.text+0x681): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' Project.cpp:(.text+0x6a4): undefined reference to `xercesc_3_0::XMLUni::fgDOMValidateIfSchema' Project.cpp:(.text+0x6be): undefined reference to `xercesc_3_0::XMLUni::fgDOMNamespaces' Project.cpp:(.text+0x6d8): undefined reference to `xercesc_3_0::XMLUni::fgDOMDatatypeNormalization' Project.cpp:(.text+0x6f2): undefined reference to `xercesc_3_0::XMLUni::fgXercesSchema' Project.cpp:(.text+0x70c): undefined reference to `xercesc_3_0::XMLUni::fgXercesSchemaFullChecking' Project.cpp:(.text+0x726): undefined reference to `xercesc_3_0::XMLUni::fgXercesIdentityConstraintChecking' Project.cpp:(.text+0x763): undefined reference to `xercesc_3_0::XMLUni::fgDOMErrorHandler' Project.cpp:(.text+0x864): undefined reference to `xercesc_3_0::XMemory::operator new(unsigned int)' Project.cpp:(.text+0x872): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' Project.cpp:(.text+0x88c): undefined reference to `xercesc_3_0::MemBufInputSource::MemBufInputSource(unsigned char const*, unsigned int, char const*, bool, xercesc_3_0::MemoryManager*)' Project.cpp:(.text+0x8c4): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' Project.cpp:(.text+0x8dc): undefined reference to `xercesc_3_0::Wrapper4InputSource::Wrapper4InputSource(xercesc_3_0::InputSource*, bool, xercesc_3_0::MemoryManager*)' Project.cpp:(.text+0xb4e): undefined reference to `xercesc_3_0::XMemory::operator delete(void*)' Project.cpp:(.text+0xc04): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' Project.cpp:(.text+0xc10): undefined reference to `xercesc_3_0::XMLString::transcode(unsigned short const*, xercesc_3_0::MemoryManager*)' Project.cpp:(.text+0xc43): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' Project.cpp:(.text+0xc4f): undefined reference to `xercesc_3_0::XMLString::transcode(unsigned short const*, xercesc_3_0::MemoryManager*)' ../plugins/basic/libbasic.a(Project.o): In function `Project::Project()': Project.cpp:(.text+0x340c): undefined reference to `xercesc_3_0::XMLUni::fgXercescDefaultLocale' Project.cpp:(.text+0x3412): undefined reference to `xercesc_3_0::XMLPlatformUtils::Initialize(char const*, char const*, xercesc_3_0::PanicHandler*, xercesc_3_0::MemoryManager*)' Project.cpp:(.text+0x3513): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' Project.cpp:(.text+0x351f): undefined reference to `xercesc_3_0::XMLString::transcode(unsigned short const*, xercesc_3_0::MemoryManager*)' ../plugins/basic/libbasic.a(Project.o): In function `Project::~Project()': Project.cpp:(.text+0x37d4): undefined reference to `xercesc_3_0::XMLPlatformUtils::Terminate()' ../plugins/basic/libbasic.a(Project.o): In function `Project::Project()': Project.cpp:(.text+0x3e7c): undefined reference to `xercesc_3_0::XMLUni::fgXercescDefaultLocale' Project.cpp:(.text+0x3e82): undefined reference to `xercesc_3_0::XMLPlatformUtils::Initialize(char const*, char const*, xercesc_3_0::PanicHandler*, xercesc_3_0::MemoryManager*)' Project.cpp:(.text+0x3f83): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' Project.cpp:(.text+0x3f8f): undefined reference to `xercesc_3_0::XMLString::transcode(unsigned short const*, xercesc_3_0::MemoryManager*)' ../plugins/basic/libbasic.a(Project.o): In function `Project::~Project()': Project.cpp:(.text+0x4244): undefined reference to `xercesc_3_0::XMLPlatformUtils::Terminate()' ../plugins/basic/libbasic.a(Project.o): In function `Project::~Project()': Project.cpp:(.text+0x4354): undefined reference to `xercesc_3_0::XMLPlatformUtils::Terminate()' ../plugins/basic/libbasic.a(Project.o):(.data.DW.ref._ZTIN11xercesc_3_012DOMExceptionE[DW.ref._ZTIN11xercesc_3_012DOMExceptionE]+0x0): undefined reference to `typeinfo for xercesc_3_0::DOMException' ../plugins/basic/libbasic.a(Project.o):(.data.DW.ref._ZTIN11xercesc_3_012XMLExceptionE[DW.ref._ZTIN11xercesc_3_012XMLExceptionE]+0x0): undefined reference to `typeinfo for xercesc_3_0::XMLException' ../plugins/basic/libbasic.a(XercesDOMErrorHandler.o): In function `XercesDOMErrorHandler::handleError(xercesc_3_0::DOMError const&)': XercesDOMErrorHandler.cpp:(.text+0xfe): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' XercesDOMErrorHandler.cpp:(.text+0x11a): undefined reference to `xercesc_3_0::XMLString::transcode(unsigned short const*, xercesc_3_0::MemoryManager*)' XercesDOMErrorHandler.cpp:(.text+0x19c): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' XercesDOMErrorHandler.cpp:(.text+0x1b3): undefined reference to `xercesc_3_0::XMLString::transcode(unsigned short const*, xercesc_3_0::MemoryManager*)' XercesDOMErrorHandler.cpp:(.text+0x292): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' XercesDOMErrorHandler.cpp:(.text+0x2a9): undefined reference to `xercesc_3_0::XMLString::transcode(unsigned short const*, xercesc_3_0::MemoryManager*)' XercesDOMErrorHandler.cpp:(.text+0x322): undefined reference to `xercesc_3_0::XMLPlatformUtils::fgMemoryManager' XercesDOMErrorHandler.cpp:(.text+0x339): undefined reference to `xercesc_3_0::XMLString::transcode(unsigned short const*, xercesc_3_0::MemoryManager*)' collect2: ld returned 1 exit status What did I do wrong? -- Vyacheslav V. Yurkov <[email protected]> Team Leader Norilsk Tel: +79069001870 Software Development Department Joint Stock Company "Channel-7", ISP
