On Sat, Aug 18, 2018 at 10:54 PM Robert Ramey via Boost
On 8/18/18 10:26 AM, Andrey Semashev via Boost wrote:
So, for example, if you mark a type with default visibility and define it in a static library, you can link that library into a shared library and the type would still be default-visible*. This is useful when you want to ensure that a certain type, like an exception, is public regardless of how it is compiled into the final executable.
Hmmm - don't you run into problems linking static libraries into shared libraries.
There is no problem linking static libraries into shared libraries, I do it every day.
I'm pretty sure that this is a problem on VC compilers a there are different versions of C runtime - one for dynamic linking and another for static linking. It's all very confusing to me.
MSVC issues with its runtime incompatibilities are fairly specific to MSVC. And those issues are not related to static libraries per se since the same problems can occur with shared libraries. Basically, you should always link with the shared runtime, unless you dead sure know what you're doing and really have to link with the static one. I'm not even sure they still ship the static runtime.