冗余发生的静态链接库?

时间:2013-11-17 22:14:48

标签: c++ compiler-construction build linker dependencies

首先,我们有一个system项目,它提供了一些抽象的体系结构类。然后,具有不同名称的几个module项目继承自系统的一个类以实现专用功能。最后,application将两者结合在一起。它从系统实例化基础架构并将模块附加到它。

这给出了以下依赖关系。

  • system没有依赖关系并构建为静态库。
  • 所有module取决于system并构建到静态库。
  • application取决于system和所有module并构建可执行文件。

当我构建此设置时,所有module库是否都包含system库的副本?如果是这样,我可以阻止这种行为吗?最后,无论如何,它们在可执行文件中与system库一起静态链接在一起。

1 个答案:

答案 0 :(得分:2)

构建库时,没有任何内容可以链接。库只是存放在一起的一堆目标文件。只有当您构建链接器参与的应用程序时,才会引入应用程序的各个组件所需的部分。