我有一些开源应用程序。这些依赖于一些第三方组件,特别是Crypto ++和Boost。有几种选择:
我该怎么办?
注意:我不在可依赖aptitude
,apt-get
或yum
等依赖关系映射器的环境中工作。
答案 0 :(得分:7)
选项3:不要将其包含在代码分发中,而是包含(链接到a)下载,该下载应与您支持的最新版本匹配。
此外,明确列出您的依赖项和您支持的最新版本。
这允许用户按照自己的意愿行事。想要你的代码有依赖吗?从一个来源加载。只想要部分依赖项,因为你拥有其他依赖项?加载部分内容。只想要你的代码吗?单独加载它。
选项4:提供2个版本,一个包括依赖项,另一个版本没有,但与上面的选项3相结合。
答案 1 :(得分:2)
我建议Autoconf旨在将这些担忧从你身上抽走。
我怀疑您是否可以在所有平台上维护所有依赖项的构建脚本。在您的svn中保留第三方代码的另一个问题是,现在您还需要跟踪它们的依赖关系等等。
答案 2 :(得分:1)
我认为在SVN中拥有依赖关系是一个好主意。这样开发人员可以简单地签出和编译。此外,您还可以避免使用不同的依赖项不兼容版本的问题。
如果您将依赖项放在一个单独的文件夹中,那么开发人员可以选择不签出您的依赖项,如果他们有这些依赖项...
答案 3 :(得分:0)
如果您有一个好的包管理器,那么我肯定不会在您的存储库中包含依赖项。如果列出依赖项,那么编译它的人应该很容易从repos中获取它们。
如果您愿意,可以将所有依赖项作为附加下载包含在内。但是将它们与你工作的代码混合起来通常不是一个好主意。