Thank you very much for sharing it with us. I am developing app that
people would download through Internet. It includes Xerces and Xalan
dlls (about 2 MB compressed). My goal is to make app that would have
less then 1 MB in total size (Xerces and Xalan included). So, I'd like
not to use Xerces.dll, but to link its source code into my project. That
way compiler will not include all Xerces *.obj files into my executable
(or dll), but only those I need (use). I have tried to remove Xerces.lib
file from my project and to add paths to Xerces *.obj files in Tools |
Options... | Directories tab, but I didn't had much success. Compiler
couldn't find definitions of Xerces function. Perhaps I need something
similar:

> cd $(IntDir)
> lib /out:$(OutDir)\xercesD.lib *.obj

    As much as I could understand you have produced XercesD.lib file for
staticaly linking into your executable file (or dll). How big is it?


> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
> Sent: Friday, December 12, 2003 3:09 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Static Linking
> 
> 
> 
> 
> 
> 
> I was able to link Xerces-c staticly, with VC++ 6.0  Although 
> it was a bit of a hack. First, I changed the VCPPDefs.hpp 
> file to make the PLATFORM_EXPORT and PLATFORM_IMPORT macros 
> empty if XERCES_STATIC_LIB is
> defined:
> 
> #ifdef XERCES_STATIC_LIB
> #define PLATFORM_EXPORT
> #define PLATFORM_IMPORT
> #else
> #define PLATFORM_EXPORT     __declspec(dllexport)
> #define PLATFORM_IMPORT     __declspec(dllimport)
> #endif
> 
> Then, I added a custom build step to the end of the build, 
> that executes the lib utility:
> 
> cd $(IntDir)
> lib /out:$(OutDir)\xercesD.lib *.obj
> 
> Finally, I defined the XERCES_STATIC_LIB macro in the Project 
> Settings.
> 
> This does still build the dll( couldn't figure out how to 
> convert the project to just do the static lib ), and it is 
> unusable, since nothing is exported.  However, since I just 
> throw that away, I didn't care.
> 
> I've tested this with the application I wrote using Xerces, 
> and it worked fine for that. Now, there are a large number of 
> the Xerces-c API's that I don't use( none of the Namespace 
> specific ones, for example ), so I can't say if this will 
> work for everyone.  However, I would expect that, if I can 
> get to one function, I should be able to get to them all.
> 
> Hope this helps.
> 
> 
> Marc Robertson
> Staff Consultant
> AWD Development
> DST Systems, Inc.
> 
> 
>                                                               
>              
>              "Denny Vrandecic"                                
>              
>              <[EMAIL PROTECTED]>                                 
>              
>                                                               
>           To 
>              12/11/2003 06:16          
> <[EMAIL PROTECTED]>       
>              AM                                               
>           cc 
>                                                               
>              
>                                                               
>      Subject 
>              Please respond to         Re: Static Linking     
>              
>              [EMAIL PROTECTED]                                
>              
>                 apache.org                                    
>              
>                                                               
>              
>                                                               
>              
>                                                               
>              
>                                                               
>              
> 
> 
> 
> 
> Xerce-C is not supposed to work statically. I think it is on 
> the ToDo-List to create a static version, but there's no 
> promise when this will be avaiable.
> 
> Best regards,
> Denny
> 
> 
>  ----- Original Message -----
>  From: Milan Tomic
>  To: Xerces-C
>  Sent: Thursday, December 11, 2003 1:12 PM
>  Subject: Static Linking
> 
> 
> 
> 
>          How can I statically link Xerces in my app? I'm 
> using VC++ 6. I've  tried to remove xerces.lib file from 
> Object/library modules list (Project  | Settings... | 
> Linktab) of my project and to add path to Xerces *.obj  files 
> in Tools | Options... | Directories tab. But still I got a 
> lot of  "unresolved external symbol" linker errors.
> 
> 
>  Thank you.
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to