Am 11.06.21 um 09:33 schrieb Gavin Lambert via Boost:
On 11/06/2021 6:55 pm, Alexander Grund wrote:
Of course this still allows to build your Boost::foo explicitely as static or shared in which case the problem is also avoided as then only one version of it exists anyway.
No, if you choose to build Boost::foo as static and it happens to be used by at least two different consumers (at least one of which is shared) that end up as part of a single final application, that's exactly the problem case that I was talking about.
This is because that can end up with multiple copies of the library in the same application (but in separate binaries), subject to the whims of the platform and linker.
I meant the case where Boost::foo is ONLY ever build as static. I.e. `add_library(Boost::Foo STATIC source.cpp)` as opposed to `add_library(Boost::Foo source.cpp)` in CMake terms. So there is only static Boost::Foo and no shared version EVER. This would work, wouldn't it?