一些C ++源文件是为多个dll编译的

时间:2015-03-17 16:17:11

标签: c++ dependencies code-duplication duplication codebase

在我们的项目中,我的团队想要为不同的dll使用一些C ++源文件(例如,MySource.cpp等,将被编译两次以生成A.dll和B.dll)。我将这种情况称为“#34;复制汇编"”。我认为这是非常糟糕的做法,我认为主要有两个原因:

  • MySource.cpp必须能够支持多个编译器。
  • MySource.cpp的所有依赖项必须在A.dll和B.dll中编译。

这对将被多次编译的源施加了很多限制。还有其他原因导致它不能完成或为什么可以这样做?

这就是我们遇到这种情况的原因:我们首先创建了一个模块X,然后是其他模块Y,Z等...它们依赖于X.而不是导出要使用的X函数在Y,Z中,我们复制了X的代码,以便Y和Z模块的代码都包含X代码的副本。然后X的代码已经发展,现在我们意识到我们需要合并所有这些代码具有真正的依赖性。现在我们正在讨论上述"胶带"解决方案并为X创建API。

1 个答案:

答案 0 :(得分:0)

我的建议是将A.dllB.dll之间常见的函数放入另一个dll中,例如a_b_common.dll

DLL函数可以调用其他DLL中的函数。