-
August 11th, 2003, 06:39 PM
#1
Static Xerces Library
I'm using Xerces (from Apache.org) to parse XML files. I downloaded their project, which compiles the source into a dll file (and an import library). I want to statically link the xerces library. Does anyone know how to change the project (I can use the VS6 or VS7 project) to compile a library that I can statically link to? Thanks for any suggestions.
Kelly
-
August 12th, 2003, 02:36 PM
#2
I created a new static library project and added all the xerces source files to it. When I try to compile it, I get 459 errors. However, they all seem to be one of two kinds. They are:
error C2061: syntax error : identifier 'template'
error C2059: syntax error : ';'
error C2059: syntax error : '<'
error C2143: syntax error : missing '{' before '<'
or:
error C2061: syntax error : identifier 'xercesc_2_3'
error C2059: syntax error : ';'
error C2449: found '{' at file scope (missing function header?)
error C2059: syntax error : '}'
Does anyone know anything about these errors?
Also, the dll project that was provided links to several libraries (kernel32.lib user32.lib advapi32.lib ws2_32.lib). Is there anyway to link these with the static library? Do I need to? Thanks for any help.
Kelly
-
August 12th, 2003, 05:40 PM
#3
I managed to get the library compiled. However, I don't know much about DLL's, so I'm having problems using the library since the code is still written to be used in a DLL.
Each class in Xerces is written like this:
class XMLUTIL_EXPORT XMemory
{
...
}
Where XMLUTIL_EXPORT can be one of several different defines. However, each of the defines is eventually defined as PLATFORM_EXPORT or PLATFOR_IMPORT. Then these are defined like this:
#define PLATFORM_EXPORT __declspec(dllexport)
#define PLATFORM_IMPORT __declspec(dllimport)
From what I've been able to find out, these defines are used to say what should be exported or imported in the DLL (or something close to that).
When I statically link the library that is created with the defines intact, I get several linker errors like this:
Dissector error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall xercesc_2_3::MemBufInputSource::MemBufInputSource(unsigned char const * const,unsigned int,char const * const,bool,class xercesc_2_3::MemoryManager * const)" (__imp_??0MemBufInputSource@xercesc_2_3@@QAE@QBEIQBD_NQAVMemoryManager@1@@Z)
So I tried to change the PLATFORM defines to this (basically defining them as nothing):
#define PLATFORM_EXPORT
#define PLATFORM_IMPORT
When I statically link the library now, the majority of the linker errors are gone. However, I still get these:
Dissector error LNK2001: unresolved external symbol "private: __thiscall xercesc_2_3::XMemory::XMemory(class xercesc_2_3::XMemory const &)" (??0XMemory@xercesc_2_3@@AAE@ABV01@@Z)
Dissector error LNK2001: unresolved external symbol _errno
Dissector error LNK2001: unresolved external symbol "private: __thiscall xercesc_2_3::XMemory::XMemory(class xercesc_2_3::XMemory const &)" (??0XMemory@xercesc_2_3@@AAE@ABV01@@Z)
Dissector error LNK2001: unresolved external symbol _errno
Dissector error LNK2019: unresolved external symbol "private: __thiscall xercesc_2_3::XMemory::XMemory(class xercesc_2_3::XMemory const &)" (??0XMemory@xercesc_2_3@@AAE@ABV01@@Z) referenced in function "public: virtual class chsUtilities::cCHSString const __thiscall chsUtilities::cCHSTArray<class chsML::cCHSXMLNode *>::getClass(void)const " (?getClass@?$cCHSTArray@PAVcCHSXMLNode@chsML@@@chsUtilities@@UBE?BVcCHSString@2@XZ)
Dissector error LNK2019: unresolved external symbol ___mb_cur_max referenced in function "public: __thiscall xercesc_2_3::CPMapEntry::CPMapEntry(char const * const,unsigned int,unsigned int)" (??0CPMapEntry@xercesc_2_3@@QAE@QBDII@Z)
Dissector error LNK2019: unresolved external symbol _errno referenced in function "public: static bool __cdecl xercesc_2_3::XMLString::textToBin(unsigned short const * const,unsigned int &)" (?textToBin@XMLString@xercesc_2_3@@SA_NQBGAAI@Z)
I don't know what else to try. Does anyone have any ideas on this? Thanks.
Kelly
-
January 30th, 2012, 06:53 PM
#4
Re: Static Xerces Library
Does anyone know the solution to the linker errors here. I am facing the same problem. Thanks for any help.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|