我有一些开源应用程序。这些依赖于一些第三方组件,特别是 Crypto++ 和 Boost。有几个选项可供选择:
- 将第三方代码置于版本控制中,并将其包含在我的代码分发中。一方面,这对人们来说是最容易使用的,因为他们可以直接从我的源代码控制库中编译。另一方面,他们可能会浪费带宽下载他们已经拥有的资源,或者最终不得不与我的图书馆作斗争以删除第三方位。此外,源代码控制工具通常无法处理像 Boost 这样的大型库。
- 完全不包含第三方代码。这迫使人们竭尽全力才能使用我的图书馆。另一方面,这意味着我的源代码控制存储库和分发版将很小。
- 我还没有预料到的事情。
我该怎么办?
注意:我工作的环境不依赖于 aptitude
、apt-get
或 yum
是可以接受的。
最佳答案
选项 3:不要将其包含在您的代码分发中,而是包含一个(指向)下载的链接,该下载应与您支持的最新版本相匹配。
此外,明确列出您的依赖项和您支持的最新版本。
这允许用户做他们想做的事。想要你的代码有依赖关系吗?从一个来源加载两者。只需要部分依赖项,因为您有其他依赖项?加载其中的一部分。只想要您的代码?单独加载。
选项 4:提供 2 个版本,一个包含依赖项,另一个不包含但与上面的选项 3 结合。
关于c++ - 我应该如何管理 C 或 C++ 开源项目中的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6164953/