在git托管的C ++项目中管理第三方的预建库

时间:2020-06-10 07:22:40

标签: git package-managers git-lfs

我已经在互联网上阅读了数十篇qna并在互联网上发布了有关如何在源代码中管理依赖二进制文件和库的信息,但是它们似乎不符合我的条件,我不觉得它们会在我对自己做得对的方式充满信心。

我使用的项目是我

  1. 第三方库作为git子模块,例如引用github-它们非常小且构建速度快
  2. 第三方库直接集成为我的项目中的源代码,因为它们太小并且不需要维护,或者它们太小而无法创建单独的存储库。
  3. 我克隆并存储在服务器上另一个仓库中的第三方库-我做了一些修改,有时还对项目进行了一些维护。
  4. 第三方库,例如firebase-cpp-sdk,它具有要下载的zip压缩文件的预构建版本-我不想从源代码构建它,但我只想链接到它。此外,我需要与我的应用程序兼容的lib的特定版本,但是将来在修复兼容性问题或需要升级时,可能会对其进行更新。

firebase-cpp-sdk的二进制文件最大为几兆字节,使用Git LFS感觉不像“大”大小(我有一种印象,我想将Git LFS用于3D模型或类似的东西,它们经常变化并且尺寸更大,但对我而言并非如此)。 而且我不会经常更改二进制文件-我相信每年最多1-2次。但是我仍然觉得仅将第3方库存储在我的主项目中是有错误的,因为它的大小(我不希望它支持的所有平台,而且我也不想弄乱它以删除不兼容的库对于我的项目是必需的),因为将来我将更新二进制文件,对于git来说似乎是错误的。

我了解了ConanIvy之类的软件包管理器。但是我还没有使用它们,也不确定它们是否适合我的目标。

您对第4点有何建议?

0 个答案:

没有答案