From what I understand in the description of your project, you should dynamically link Lib_A: if you link Lib_A statically with each of your shared Lib_Bx libraries, you will duplicate Lib_A code and static variables x times.
Let's say if you have a class in Lib_A that has the form:
class BaseKlass { static int instance_count; ... };
instance_count will be duplicated in all your shared libraries, which makes it impossible to count its BaseKlass instances.
You might be bitten by more subtle problems with virtual tables or RTTI (dynamic_cast), etc.
You should take a look at this boost.python file , which describes the problems associated with what I mentioned.
Boost.python allows you to create python modules (dynamic libraries) that must be loaded into the same process. Each python module created using boost.python, if they need to interact together at the C ++ level, for example by calling class B in a module from class A in another module, must dynamically bind to boost.python lib to avoid problems.
rotoglup
source share