我有一个包含大量独立模块(可执行文件等)的大型存储库,有些依赖于另一个模块(并且依赖于不在repo中的第三方库)。
我希望能够在此存储库中仅提取一个模块,并且能够独立构建它。
btw - 我在Linux和Windows环境中使用scons作为构建工具。
我在这个网站(以及更多)中看到,有两种方法可以解决这个问题:
在每个模块存储库中创建目录“dependency”或任何类似的名称,并将此模块所依赖的所有存储库设置为此目录中的子存储库。
问题:
创建“二进制存储库”或“构建工件存储库”并使用它来管理依赖关系。
对我来说这看起来是最好的解决方案,但我不明白如何做到这一点。
我看到了c#windows开发人员的nuget(还有很少的c ++,但仅限于windows)和java开发者的ivy / maven,但是找不到任何可以为c ++处理它的工具。
我的问题是 - 如何使用c ++代码创建依赖关系管理?
答案 0 :(得分:0)
C ++中的依赖关系通过头文件和转发声明来管理。 通常,您应该尽可能地使用前向声明,并且在无法解决时包含头文件。这通常会给您带来好处,只要您不更改类的接口,重新编译应该只触及单个目标文件。
我怀疑你也想要一些更复杂的东西,与你的构建方式有关。这与c ++几乎没什么关系。如果您想要更好的答案,请更明确地了解您的构建设置。
答案 1 :(得分:0)
maven nar (Native Archive) plugin可以帮助您解决此问题。它是maven的一个插件,允许您在平台上构建本机存档。然后,您还可以将标准maven依赖项功能用于c / c ++依赖项。