如何分发依赖于其他库的 C++ 库

Car*_*iro 7 c++ git dependencies software-distribution

做这个的最好方式是什么 ?

  1. 将依赖库作为 git 子模块添加到您的源代码中并使用您的源代码构建它们?
  2. 与 #1 相同,但不是 git submodules 将克隆和构建卸载到构建系统,就像这里描述的那样。
  3. 不要构建依赖项,只需列出它们并让库用户处理它的安装(静态或动态,但他感觉如何)。
  4. 将所有内容构建到一个巨大的静态库中,并将其完全隐藏在下游用户面前。
  5. 使用由其他语言(如 maven、ant、gradle、gem、pip)著名的依赖管理器之一。这些中的任何一个都可以很好地与 C++ 库配合使用吗?
  6. 更好的东西,我没有在这里考虑

我有一个合理的感觉,#4 是不可能的。

我一直在尝试使用 #1,但我已经遇到了 git 子模块的不便之处。

我觉得#2 与#1 相似,但略好于#1,但如果你这样做,你如何进行开发?您是在系统中安装依赖库还是将它们保存在源代码树中(但不在源代码管理中)以模拟构建环境?

很多问题,但希望有一个最终的答案。