You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xalan.apache.org by Haiying Tu <tu...@teamqsi.com> on 2006/03/30 01:46:11 UTC

build in Visual Studio 2005 (VC++8)

Dear all,
   
  Need help on Xalanc and Xerecs work for VC++8.
   
  Thank Dmitry for leading me to the link of source code:
   
  http://svn.apache.org/repos/asf/xalan/c/trunk/ 

  However, even Xerces cannot be build in VC8 now (I successfully built Xerces 2.7 in VC8, however, Xalanc is looking for a library associated with Xerces 3).  Got lots of link errors such as: 
   
  DocumentImpl.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static bool __cdecl xercesc_3_0::XMLChar1_0::isValidName(unsigned short const * const,unsigned int)" (__imp_?isValidName@XMLChar1_0@xercesc_3_0@@SA_NQBGI@Z) referenced in function "public: bool __thiscall xercesc_3_0::DocumentImpl::isXMLName(class xercesc_3_0::DOMString const &)" (?isXMLName@DocumentImpl@xercesc_3_0@@QAE_NABVDOMString@2@@Z)
  DOM_DOMImplementation.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static bool __cdecl xercesc_3_0::XMLChar1_0::isValidName(unsigned short const * const,unsigned int)" (__imp_?isValidName@XMLChar1_0@xercesc_3_0@@SA_NQBGI@Z)
  DOM_DOMImplementation.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static int __cdecl xercesc_3_0::XMLString::compareIString(unsigned short const * const,unsigned short const * const)" (__imp_?compareIString@XMLString@xercesc_3_0@@SAHQBG0@Z) referenced in function "public: bool __thiscall xercesc_3_0::DOM_DOMImplementation::hasFeature(class xercesc_3_0::DOMString const &,class xercesc_3_0::DOMString const &)" (?hasFeature@DOM_DOMImplementation@xercesc_3_0@@QAE_NABVDOMString@2@0@Z)
  DOM_DOMImplementation.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static unsigned int __cdecl xercesc_3_0::XMLString::stringLen(unsigned short const * const)" (__imp_?stringLen@XMLString@xercesc_3_0@@SAIQBG@Z) referenced in function "public: class xercesc_3_0::DOM_DocumentType __thiscall xercesc_3_0::DOM_DOMImplementation::createDocumentType(class xercesc_3_0::DOMString const &,class xercesc_3_0::DOMString const &,class xercesc_3_0::DOMString const &)" (?createDocumentType@DOM_DOMImplementation@xercesc_3_0@@QAE?AVDOM_DocumentType@2@ABVDOMString@2@00@Z)
    
  Any hint?
   
  -------------------------------------------------------
  Hi Dave,

I was trying to build Xalanc 1.10 (with Xerces 2.7) in
Visual Studio 2005 and apparently failed.  I was
guided to your Xalanc-584 post and downloaded VC8.zip.
However, only project files are there.  Could you let
me know where I can get the updated source files?  I
got more errors by my own build compared with your
patch file.  

You help is highly appreciated!

best rgs,
Haiying Tu


Re: build in Visual Studio 2005 (VC++8)

Posted by David Bertoni <db...@apache.org>.
Haiying Tu wrote:
> Dear all,
>  
> Need help on Xalanc and Xerecs work for VC++8.
>  
> Thank Dmitry for leading me to the link of source code:
>  
> http://svn.apache.org/repos/asf/xalan/c/trunk/
> However, even Xerces cannot be build in VC8 now (I successfully built 
> Xerces 2.7 in VC8, however, Xalanc is looking for a library associated 
> with Xerces 3).  Got lots of link errors such as: 
>  
> DocumentImpl.obj : error LNK2019: unresolved external symbol 
> "__declspec(dllimport) public: static bool __cdecl 
> xercesc_3_0::XMLChar1_0::isValidName(unsigned short const * 
> const,unsigned int)" 
> (__imp_?isValidName@XMLChar1_0@xercesc_3_0@@SA_NQBGI@Z) referenced in 
> function "public: bool __thiscall 
> xercesc_3_0::DocumentImpl::isXMLName(class xercesc_3_0::DOMString const 
> &)" (?isXMLName@DocumentImpl@xercesc_3_0@@QAE_NABVDOMString@2@@Z)
> DOM_DOMImplementation.obj : error LNK2001: unresolved external symbol 
> "__declspec(dllimport) public: static bool __cdecl 
> xercesc_3_0::XMLChar1_0::isValidName(unsigned short const * 
> const,unsigned int)" (__imp_?isValidName@XMLChar1_0@xercesc_3_0@@SA_NQBGI@Z)
> DOM_DOMImplementation.obj : error LNK2019: unresolved external symbol 
> "__declspec(dllimport) public: static int __cdecl 
> xercesc_3_0::XMLString::compareIString(unsigned short const * 
> const,unsigned short const * const)" 
> (__imp_?compareIString@XMLString@xercesc_3_0@@SAHQBG0@Z) referenced in 
> function "public: bool __thiscall 
> xercesc_3_0::DOM_DOMImplementation::hasFeature(class 
> xercesc_3_0::DOMString const &,class xercesc_3_0::DOMString const &)" 
> (?hasFeature@DOM_DOMImplementation@xercesc_3_0@@QAE_NABVDOMString@2@0@Z)
> DOM_DOMImplementation.obj : error LNK2019: unresolved external symbol 
> "__declspec(dllimport) public: static unsigned int __cdecl 
> xercesc_3_0::XMLString::stringLen(unsigned short const * const)" 
> (__imp_?stringLen@XMLString@xercesc_3_0@@SAIQBG@Z) referenced in 
> function "public: class xercesc_3_0::DOM_DocumentType __thiscall 
> xercesc_3_0::DOM_DOMImplementation::createDocumentType(class 
> xercesc_3_0::DOMString const &,class xercesc_3_0::DOMString const 
> &,class xercesc_3_0::DOMString const &)" 
> (?createDocumentType@DOM_DOMImplementation@xercesc_3_0@@QAE?AVDOM_DocumentType@2@ABVDOMString@2@00@Z)
>   
> Any hint?
>  

The latest Xalan-C sources should build fine with the latest sources of 
Xerces-C.  If you're going to build the latest Xalan-C with VC8 using 
Xerces 2.7, you'll need to do two things:

1. Change the Xerces-C link library Xalan-C is using.  Look for 
xerces-c_3D.lib and xerces-c_3.lib and change them to xerces-c_2D.lib 
and xerces-c_2.lib.

2. Ensure that wchar_t is treated consistently.  You can either treat 
wchar_t as a proper type, or treat is as a typedef.  Older versions of 
VC++ treated it as a typedef, but the standard requires it be a proper 
type.  You will need to set the option consistently in both the Xerces-C 
and Xalan-C projects.  Xalan-C defaults to treating wchar_t as a proper 
type in VC8.

Dave