Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-01-12 10:25:07

"John Maddock" <john_at_[hidden]> writes:

>> Boost.Python is dynamic by default and only rarely should be linked to
>> statically. It sounds like these macros are designed with the
>> opposite default in mind?
> That's correct, basically regex used to be dynamic by default, but that
> attracted sufficient complaints that it seemed sensible to change, and then
> write up the rationale and mechanism used in case it is of use to others.
> However there are two libraries: Thread and Python which are "special" in
> the sense that they can only really be built in certain ways.

No, Python can be built either way. If you are embedding Python in a
C++ application, a static build might make sense. Otherwise,
probably not.

> My guess is that Boost.Python would be dynamic by default, maybe
> with it's own macro to turn that off if it is in fact possible.

It is.

> So I guess we're left with:
> BOOST_PYTHON_SOURCE: or whatever python already uses for this.


> BOOST_PYTHON_NO_LIB: to turn off auto-linking (if supported).
> BOOST_ALL_NO_LIB: turns off auto-linking (if supported)

Why isn't this called "BOOST_ALL_NO_AUTO_LINK" or
"BOOST_ALL_NO_FORCE_LIB_NAME"? "NO_LIB" doesn't sound like it has
anything to do with disabling auto_link.

> BOOST_PYTHON_STATIC_LINK: forces static linking (probably use with whatever
> python already uses).

It uses "BOOST_STATIC_LIB". I wonder why anything that generic was
ever considered (by me) to be OK?

Dave Abrahams
Boost Consulting

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