首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多配置项目中管理第三方库

如何在多配置项目中管理第三方库
EN

Stack Overflow用户
提问于 2012-12-03 13:49:51
回答 1查看 1.6K关注 0票数 8

假设您正在处理一个支持多个配置的项目(linux和windows构建、共享/静态链接、有特性或没有特性等)。要构建所有这些配置,您需要不同版本的第三方组件(使用gcc或msvc构建,共享/静态,以及一些指定的预处理器定义,等等)。因此,最终您会遇到管理所有这些配置的问题,这些配置不仅适用于您的项目,而且也适用于您的项目所使用的所有库。

有一个通用的解决方案/方法/软件来帮助管理单个项目的几种不同的配置吗?

准则

  • 容易设置,即一个人需要花费多少时间来从头开始构建你的项目?
  • 易于管理,即是否很难添加新的依赖项或删除现有的依赖项?
  • 错误证明,即开发人员通过更改依赖关系来打破构建的频率?

到目前为止,我已经尝试过几种方法。

  1. 为VCS下的每个配置存储预构建的包。 Pros:当项目很小时易于安装(更新工作副本,您就可以了)。易于管理(为每个所需的配置构建一次库)。错误证明(VCS客户端通知您工作副本中的更改)。 Cons:不适合分布式VCS (GIT、Mercurial等)。存储库增长迅速,最终一个简单的“克隆”操作将是不可容忍的。你还下载了很多你不需要的东西(也就是说,如果你在linux上工作的话,windows库)。如果您正在实现库,那么库的用户将通过将其集成到他们的项目中来继承所有这些问题。
  2. 存储库源,而不是预先构建的包。 Pros:易于安装。 Cons:添加一个新库非常痛苦。您需要为每个配置提供构建脚本和源代码修补程序。但这只是冰山一角。您的依赖关系有它们自己的依赖关系,这些依赖有它们自己的依赖,等等。您有很好的机会获得类似于Gentoo发行版的结果:)
  3. 在外部服务器的某个地方存储一个存档或只存储一个带有预构建包的文件夹。 Pros:解决这个问题.有点。 Cons:设置起来并不容易(您必须手动复制存档)。管理起来并不容易(您必须手动将每个库添加到服务器中)。没有变化的历史。不是错误证明,因为很容易忘记在服务器上放置一些东西,或者删除一些有用的东西。 稍微改进的方法:您可以使用集中式VCS (例如,SVN)来存储所有第三方库,这样就更容易使用了。但是,如果您使用它作为一个简单的文件存储,那么您要么没有集中的更改历史记录,要么您得到了一个包含大量不必要库的大型存储库(如果您将它用作子存储库)。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-03 14:53:04

当您面对这种类型的问题时,您必须学习并开始使用配置管理工具(除了您选择的单片机常用技术之外)。CM是 process ,使用一些配置管理工具是该过程的一部分。

目前,我们有不同的CM-工具的伟大选择,在其中,您可以选择最适合或只是首选。从我的POV来看,厨师是“每个人的最佳选择”,你的里程可能会有所不同

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13684651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档