c++ - 我应该如何管理 C 或 C++ 开源项目中的依赖项?

标签 c++ c

我有一些开源应用程序。这些依赖于一些第三方组件,特别是 Crypto++ 和 Boost。有几个选项可供选择:

  • 将第三方代码置于版本控制中,并将其包含在我的代码分发中。一方面,这对人们来说是最容易使用的,因为他们可以直接从我的源代码控制库中编译。另一方面,他们可能会浪费带宽下载他们已经拥有的资源,或者最终不得不与我的图书馆作斗争以删除第三方位。此外,源代码控制工具通常无法处理像 Boost 这样的大型库。
  • 完全不包含第三方代码。这迫使人们竭尽全力才能使用我的图书馆。另一方面,这意味着我的源代码控制存储库和分发版将很小。
  • 我还没有预料到的事情。

我该怎么办?

注意:我工作的环境不依赖于 aptitudeapt-getyum 是可以接受的。

最佳答案

选项 3:不要将其包含在您的代码分发中,而是包含一个(指向)下载的链接,该下载应与您支持的最新版本相匹配。
此外,明确列出您的依赖项和您支持的最新版本。

这允许用户做他们想做的事。想要你的代码有依赖关系吗?从一个来源加载两者。只需要部分依赖项,因为您有其他依赖项?加载其中的一部分。只想要您的代码?单独加载。

选项 4:提供 2 个版本,一个包含依赖项,另一个不包含但与上面的选项 3 结合。

关于c++ - 我应该如何管理 C 或 C++ 开源项目中的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6164953/

相关文章:

c - 套接字编程: How to handle multiple clients in c

c++ - 如何在Eclipse CDT中选择文件进行调试?

c - 以编程方式检查进程是否正在后台运行

c++ - 以下代码片段的行为是什么?

c++ - 非 native 长度的有符号和无符号整数的性能差异

C++ 运算符销毁输入变量

c++ - 在 Linux 上快速高效地绘制像素阵列

c - 指针所在的堆栈

java - 使用 SWIG 包装第 3 方类/数据类型

c++ - std::atomic.compare_and_exchange_strong() 失败