【发布时间】:2013-11-30 23:02:17
【问题描述】:
首先,我们有一个system 项目,它提供了一些抽象架构类。然后,几个具有不同名称的module 项目从系统的类之一继承以实现专门的功能。最后,application 将两者结合在一起。它从系统实例化基础架构并将模块附加到它。
这给出了以下依赖项。
-
system没有依赖关系并构建到静态库。 - 所有
modules 都依赖于system并构建到静态库。 -
application依赖于system和所有modules 并构建可执行文件。
当我构建此设置时,是否所有 module 库都包含 system 库的副本?如果是这样,我可以防止这种行为吗?最后,无论如何,它们在可执行文件中与system 库一起静态链接在一起。
【问题讨论】:
-
这不是一个答案,因为我自己也不确定,但我会认为,当您链接应用程序时,您只需链接到 modules.lib,这意味着所有系统功能也有。
-
您可以将系统构建为 lib,将模块构建为 dll,然后动态链接到该 dll
标签: c++ compiler-construction build linker dependencies