如何在不耦合它们的情况下编译依赖于另一个共享库中的类的共享库?

时间:2019-07-28 04:19:33

标签: c++ dll module architecture

在运行时从主程序加载的共享库如何使用另一个也在运行时加载的共享库中的类?

我已经模块化了我的游戏引擎架构。我创建了一个Core模块,其中包含诸如自定义String库之类的类。我的引擎模块在整个自身中使用Core中包含的String类,但是由于不了解String类,因此目前无法编译。

是否有可能以一种既可以为Engine提供足够的细节来进行编译,又可以保留模块价值的方式来编译Core模块?如果我将Core静态链接到Engine,那将达到目的。

如果我将Core动态链接到Engine,那会不会也达到目的?我唯一能想到的是,这对于模块的编译是必需的,但是我仍然会在运行时动态加载它们。

我问,因为Core模块的DLL版本的.lib足以使Engine进行编译,但是如果我继续这样做,则会导致DLL在运行时加载。是否有一种方法可以使引擎从.lib提供的内容中进行编译,而又不导致它们自动加载?

0 个答案:

没有答案