|
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
>> <http://article.gmane.org/gmane.comp.lib.boost.devel/168552>. We also
>> discussed it at one point
>> <http://article.gmane.org/gmane.comp.lib.boost.devel/166847>. 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:
> http://www.boost.org/more/separate_compilation.html#static_or_dynamic
>
> 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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk