Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

5年前关闭。



Improve this question




我将很快开始一个新的C++项目(它可能也包含一些C组件),并且我正在寻找一个现代的,具有工业实力的(即非beta)构建系统。该软件将由3-5个开发人员在3-5年内创建,并将在Linux上运行(稍后可能会支持Mac OS X和Windows)。我正在寻找一种东西,例如,具有更好的可理解性,易用性和可维护性的东西。 make,但功能仍然足以处理复杂的项目。首选开源软件。

到目前为止,我开始研究Boost.BuildCMakeMavenSCons,并且喜欢所有这些功能和概念,但是我缺乏为大型项目做出决定的经验。

最佳答案

我已经使用SCons一年多了,这真的很酷。这是一个完整的构建系统,而不是构建脚本生成器。

它是基于Python的,您用Python编写了SConstruct和SConscript(与Makefile等效),它允许您调用任何可能需要的库,并提供Makefile授权的更清晰的语法。

由于Python是跨平台的,SCons也跨平台的,所以没有问题。

它 bundle 了很多目标:

  • 检测可用的二进制文件并自动将许多扩展名映射到正确的二进制文件
  • 会根据操作系统检测对象/库的正确扩展名,尽管您可以覆盖它
  • 提供了诸如Move,Copy,Tar等常用操作(在构建后会延迟)的功能,并且您可以提供自己的python脚本并将其挂钩
  • 开箱即用,但在每个级别都提供了许多自定义挂钩

  • 它确实非常有效,甚至可以提出一些高级功能(例如,将最终文件的哈希存储在sqlite db中而不是使用时间戳),即使您最终决定了策略。

    它还提供了免费的依赖项循环检测功能(Makefiles绝对没有提供此功能),并且界面通常是更好/自动化的。

    我说这很有效吗?好吧,它显然允许多个作业并行执行;)

    而且它也是免费的,就像免费喝酒一样;)

    我只能推荐它。

    07-24 09:44
    查看更多