Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2007-12-19 12:19:54

John Maddock wrote:

> Rene Rivera wrote:
>> John Maddock wrote:
>>> If I do a:
>>> bjam stage --toolset=msvc-8.0 --with-regex
>>> Then with 1.35 I don't get any static libraries built, just the
>>> dll's. Was this a deliberate change somewhere? It's a problem
>>> because the default for auto-linking is to look for static rather
>>> than dynamic libraries.
>> Yes, it was intentional
>> <>. We also
>> discussed it at one point
>> <>. I guess
>> we
>> should switch autolink to default to the dynamic libs?
> That's actually not possible without changing folks library code: it's a
> per-library decision which is the default, with the static library being
> recomended as the default unless there are reasons to choose otherwise.
> There's a great deal of documentation that would have to change to reflect
> this as well.
> There's also a rationale for why static linking is the default behaviour
> in our docs here:
> There's a further issue with building only one variant under MSVC: it
> doesn't work!
> By only building a release build, then the only thing that will work
> "straight out the box" is building a release build of your application
> against the dll runtime. Debug builds will generate linker errors (can't
> find the auto-linked library etc), as will builds against the static
> runtime, this means that Boost will appear totally broken if users try and
> build the default debug builds that their IDE gives them.
> We need to be *very* careful with this, or the complaints will be loud and
> vociferous!
> If the aim is to reduce the number of variants built, then I would
> suggest:
> Dymanic *and* static lib, as Release, multithreaded, dynamic runtime
> single build on Unix variants (2 build variants).

I'd be opposed to this. How many popular projects can you name,
that build two variants on Linux?

- Volodya

Boost list run by bdawes at, gregod at, cpdaniel at, john at