From: John Maddock (john_at_[hidden])
Date: 2004-01-25 10:55:56
> > Oh, nasty. I keep forgetting that static linking is the default here.
> > This seems like a real usability problem to me. My project used to
> > work just fine before auto_link capabilities were added. I specified
> > that I wanted to link to the dlls by putting them in my sources, and
> > everything worked. Now I have to add one or more <define>s to all my
> > targets, or I get confusing errors. Doesn't seem like an
> > improvement, at least for my usage model.
Hold on, how did that work (it shouldn't have done so?), you've always had
to define something to tell the headers whether to add __declspec(dllimport)
or not, the only change was that we've tried to be consistent now rather
than different libs doing different things.
Ah, actually I see why it used to work for you: date_time was dynamic by
default (but only for msvc, dyn linking didn't work at all for other
compilers), now it's static by default and constant across compilers, I
realise that the change has broken your build environment though :-(
> Worse, adding BOOST_ALL_DYN_LINK doesn't work:
Because you are static linking to filesystem (but BOOST_ALL_DYN_LINK makes
the headers think you are dynamic linking), so either:
define BOOST_DATE_TIME_DYN_LINK if that's the only lib you want to shift
from static to dyn link (I think that's the case here, since boost.thread is
always dyn linked anyway as a precondition).
change <lib>boost_filesystem to <dll>boost_filesystem in your build project.
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk