gpt4 book ai didi

c++ - 我应该如何向开发人员提供库二进制文件?

转载 作者:行者123 更新时间:2023-11-28 07:00:09 25 4
gpt4 key购买 nike

我想让其他人可以轻松地处理我的存储库。但是,由于一些编译的依赖项的大小超过 100mb,我无法将它们包含到存储库中。 Github 拒绝这些文件。

处理大型二进制依赖项的最佳方法是什么?在 Windows 下从源代码构建库并不容易,需要花费数小时。我不希望每个开发人员都在这个过程中挣扎。

最佳答案

我最近一直致力于将 Ivy ( http://ant.apache.org/ivy/) 与 C++ 二进制文件结合使用。基本思想是为每个构建组合构建二进制文件。然后,您将把每个构建组合压缩到一个名称类似于 mypackage-windows-vs12-x86-debug.zip 的文件中。在您的 ivy.xml 中,您会将每个 zip 文件与一个配置相关联(例如:windows-vs12-x86-debug)。然后将这个包含多个 zip 文件的包发布到 Ivy 存储库。您可以自己托管存储库,也可以尝试上传到现有的 Ivy 存储库。您将为每个依赖项创建一个 zip 文件包,ivy.xml 文件将描述所有包之间的依赖项链。

然后,您的开发人员必须设置 Ivy。在他们的 ivy.xml 文件中,他们会将您的包列为依赖项,以及他们需要的配置(例如:windows-vs12-x86-debug)。他们还需要在他们的构建中添加一个 ivy 解析/检索步骤。 Ivy 将为您的包以及您的包所依赖的所有内容下载 zip 文件。然后他们将需要在他们的构建中设置解压缩和移动任务以提取您提供的二进制文件,并将它们放在他们的构建期望的位置。

Ivy 是一个很酷的工具,但它绝对是针对 Java 而不是 C++ 的流线型。一切就绪后,它非常棒。然而,根据我作为一个完全不熟悉 DevOps 的人的经验,将其集成到 C++ 构建中一直具有挑战性。我发现最简单的方法是创建简单的 ant 任务来执行所需的 ivy 操作,然后在需要时使用我的“常规”构建系统 (make) 调用这些 ant 任务。

所以我还应该提到,我考虑使用 Ivy 的原因是我在无法更改系统文件的公司环境中实现它。如果您和您的开发人员可以做到这一点,那么使用 RPM/APT 系统可能会更好。您将设置一个存储库并让您的开发人员将您的存储库添加到适当的 RPM/APT 配置文件中。然后,他们将运行 sudo apt-get install mypackage 之类的命令,apt-get 将完成在正确位置下载和安装正确文件的所有工作。我不知道这在 Windows 上如何工作,也许有人创建了 Windows RPM/APT 客户端。

关于c++ - 我应该如何向开发人员提供库二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22598854/

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