gpt4 book ai didi

c++ - C++中如何管理依赖关系

转载 作者:太空狗 更新时间:2023-10-29 23:17:06 32 4
gpt4 key购买 nike

我有一个很大的存储库,其中包含许多独立的模块(可执行文件和 so 文件),其中一些依赖于另一个模块(并且依赖于不在存储库中的第三方库)。

我希望能够仅拉取此存储库中的一个模块并能够独立构建它。

顺便说一句 - 我在 Linux 和 Windows 环境中使用 scons 作为构建工具。

我在这个网站(以及更多网站)上看到有两种方法可以解决这个问题:

  1. 在每个模块仓库中创建目录“dependency”或任何类似的名称,并将该模块依赖的所有仓库设置为该目录中的子仓库。

    问题:

    1. 它没有解决我的 SCM 中没有处理的第三方问题。
    2. 它使构建过程变得更慢
    3. 它很丑,在我的基础项目目录中有很多倍数。
  2. 创建“二进制存储库”或“构建 Artifact 存储库”并使用它管理依赖关系。

这对我来说似乎是最好的解决方案,但我不知道如何实际操作。

我看到了适用于 C# Windows 开发人员的 nuget(还有一些 C++,但仅限于 Windows)和适用于 Java 开发人员的 ivy/maven,但找不到任何适用于 C++ 的工具。

我的问题是 - 如何使用 C++ 代码创建依赖管理?

最佳答案

C++ 中的依赖关系是通过头文件和前向声明来管理的。通常,您应该尽可能多地使用前向声明,并在没有办法时包含头文件。这通常会给您带来好处,只要您不更改类的接口(interface),重新编译就应该只涉及一个目标文件。

我怀疑您还想要更复杂的东西,这与您的build设置方式有关。这与 C++ 关系不大。如果您想要更好的答案,请更明确地说明您的build设置。

关于c++ - C++中如何管理依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20299664/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com