This is the mail archive of the
mailing list for the Cygwin project.
Re: boost program_options library with cygwin
- From: Brian Dessent <brian at dessent dot net>
- To: cygwin at cygwin dot com
- Date: Wed, 09 Nov 2005 08:29:57 -0800
- Subject: Re: boost program_options library with cygwin
- References: <20051109160408.GB5162@porschberg.osp-dd.de>
- Reply-to: cygwin at cygwin dot com
Thomas Porschberg wrote:
> This is of course nice but can someone give an explanation ?
What do you want an explantion of? The fact that you can't mix and
match Cygwin and non-Cygwin objects in an executable? That's because
mingw and Cygwin use different C runtimes. It boils down to the fact
that you're compiling objects against one CRT's headers but at link time
trying to link them to a different CRT's library. This is bad news,
because the two CRTs are certainly not ABI compatible, so function
arguments will be all kinds of messed up, leading to SEGV crashes. And
that's if you even get it to link, which is exceedingly rare. Most of
the time you won't, because you will have accidently used a function
somewhere that exists in one CRT but not the other. Or because the two
CRTs used different and incompatible #defines internally to implement
things like 'assert' or 'environ', or whatever.
The take-away is that -mno-cygwin is not a magic bullet that just
somehow magically makes objects that don't depend on Cygwin but
otherwise leaves everything the same. It switches the build environment
to something completely different.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html