@IgorStepanov Any time that you do plugins, you need dynamically load them at runtime. They might not even exist yet when the program is compiled. Dynamically loading a library like this is the real benefit of shared libraries. There are obviously benefits for programs that just link against everything, but it's still debatable as to whether statically linking or dynamic linking is better, whereas for stuff like plugins, dynamically linking a library with a particular interface is really the only way to do it.