How can a shared library that is loaded at runtime from my main program use classes from another shared library that is also loaded at runtime?
I've modularized my game engine architecture. I've created a Core module that contains classes such as a custom String library. My Engine module uses the String class contained in Core throughout itself but currently can't compile because it doesn't know about the String class.
Is it possible to compile the Core module in a way that can provide Engine with enough detail to compile, while also preserving the value of a modules? If I statically linked Core to Engine, that would defeat the purpose.
If I dynamically linked Core to Engine, wouldn't that also defeat the purpose? The only thing I can think of is that this is necessary for modules to compile, but that I would still dynamically load them at runtime.
I ask because the .lib from DLL version of the Core module is enough to get Engine to compile, but will cause the DLL to be loaded at runtime if I kept with this. Is there a way to get engine to compile from basically what the .lib provides without actually causing them to be automatically loaded?