Boost logo

Boost Users :

From: dariomt_at_[hidden]
Date: 2008-06-26 03:35:45

> Why not to introduce an additional level of indirection ;)
> Just wrap the 3d-Party lib in a DLL (or Shared Object under Linux),
> than you should be find to use 2 libs with each other...

Thanks for the idea. I'll give it a try, but ideally the application should
be distributed as a single executable file.

About versioning the boost namespace, I suppose you mean something like
changing boost namespace to e.g. boost_1_35_0. Any thoughts on how much work
it would take me to patch a given version of boost to do that? Is it even

>On Wed, Jun 25, 2008 at 6:41 PM, David Abrahams <dave_at_[hidden]> wrote:
> Vladimir Prus wrote:
>> dariomt_at_[hidden] wrote:
>>> Hi all,
>>> I'm using header-only boost libs in two static libraries that will
>>> be linked into an executable.
>>> No boost components are used in the interfaces of those libs, boost
>>> is only used in the implementation inside the libraries.
>>> Is it possible to mix versions of boost in those two static
>>> libraries? Will the linker complain, or will it just get confused
>>> and mess up the executable?
>> In general, this is highly risky business. On GCC, each static
>> library will contain a copy of every template function used by a static
>> If the linker finds that the same function is used in both static
>> libraries, it will put only one copy in the output executable, and if
>> the definitions of those functions differ, you're in trouble. See the
>> attached example, which, then run, produces:
>> a.cpp:say
>> a.cpp:say
>> Which is clearly wrong. This *might* work with shared libraries, but
>> you need to consult your toolchain documentation.
> For the past few years we've had a GCC option that allows you to
> expose from dynamic libs only those names you specify, sort of like
> declspec on Windows. I don't remember the name of the flag, though.

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at