Hey,

First of all, thanks for the reply, and yes, there is still an issue with the 
static version i'd like to resolve. It's not really urgent, but i would need it 
for certain cases.

The thing is, that building stdcxx is not really a problem, since i'm still 
doing it with build.bat, means devenv.exe. Whats the problem is, that i'm 
building applications with my wgcc wrapper around cl.exe, and those 
applications use stdcxx. But the problem with the static version (shared works 
fine now) is, that i get lots of duplicate symbols when just adding the 
stdlib15s.lib for the linker.
On the other hand when adding /NODEFAULTLIB:msvcprt i get thousands of 
unresolved symbols (in a very simple test case). I believe this is because of 
stdcxx depending on msvcprt as far as i have seen.

For me it's looking like static versions _cannot_ work on windows, but i might 
be wrong there.

On Interix you may want to add wgcc support to the GNUMakefile !? Ist a wrapper 
around cl.exe, so one can work like when using gcc, but produces native win32 
binary images (additionally compilation is faster, etc....). You can find wgcc 
at http://sourceforge.net/projects/interix-wgcc.
This would just create a little bootstrap problem, since wgcc wants to use 
stdcxx, but it can operate without it well...

P.S.: i'm not offended if you won't use wgcc, just a tip ;o)

Cheers, Markus

-----Ursprüngliche Nachricht-----
Von: Martin Sebor [mailto:[EMAIL PROTECTED] 
Gesendet: Donnerstag, 14. September 2006 18:29
An: [email protected]
Betreff: Re: problem using static libraries on windows

Duft Markus wrote:
> hey there!
>  
> i have a little problem (see STDCXX-287) with using stdcxx. The shared 
> version does work somehow, but iostreams seem to be broken, and the 
> static version cannot be linked because of billions of conflicts with 
> msvcprt. how can i use the static version without conflicting with 
> microsoft runtimes? Or even better, how can i get the shared version 
> to work?
>  
> I'm working on the command-line (Interix, but using microsoft tools 
> (cl.exe & co)) and not in the VS IDE, so commandline tips would be 
> great...

We don't have a command line only solution for MSVC at this time (it is there 
for all other compilers including gcc on Interix) but based on feedback like 
yours we're thinking about adding it. I've worked around it in the past by 
writing a simple little wrapper script for cl.exe to translate UNIX paths to 
Windows and invoked it through the GNUMakefile infrastructure just like any 
other compiler. IIRC, this was on Cygwin and very slow but it got the job done.

Since you said that STDCXX-287 is not an issue, do you still need any help with 
the shared vs archive library issue?

You can see the MSVC command line options we use to build stdcxx in the IDE. In 
general, the compiler options are something like
this: -EHsc -MD -W3 -O2 -GR (or -MDd -Zi to enable debugging), and we pass 
/NODEFAULTLIB:msvcprt to the linker to avoid linking with the native 
implementation of the C++ Standard Library. That should prevent any conflicts. 
Let me know if there's anything else.

Martin

Reply via email to