用于C++项目的任何好的构建工具,可以替换make吗?

lur*_*rks 22 c++ build-process makefile

我想知道是否有任何漂亮而又整洁的工具来替换GNU Autotools或Make来构建一个非常大的C++项目,这是一个非常复杂的事情.

如果项目很小,生成de Autotools所需的所有文件很简单,但如果源代码分为多个目录,多个第三方库和许多依赖项,则属于"Autotools Hell".

谢谢你的任何建议

Nic*_*ick 18

CMake?(生成makefile,因此技术上不是替代品).

我最近也看到" SCons "出现在几个地方.虽然我自己没有创造任何东西.


amr*_*rox 18

谷歌的V8 JavaScript引擎是用C++编写,并使用SCons的,所以我想这是因为它一票.

  • 我们发现SCons对于大型Visual Studio解决方案来说速度非常慢.它在UNIX-ish系统上运行良好. (2认同)
  • 我是第二个:SCons在进入更大版本时非常慢. (2认同)
  • 我想知道构建器脚本如何减慢*C++*构建速度.大部分时间都不会用于编译所有这些模板吗? (2认同)

wil*_*ell 15

看看waf.

我认为您可以将其视为制造和自动工具的完全替代品.它基于python.我喜欢waf的一件事是waf脚本本身是你放在项目根目录中的~100kb独立版.这与make或rake和朋友形成对比,其中必须首先安装构建系统.你必须安装python> = 2.3.

~$ ./waf configure && ./waf && ./waf install
Run Code Online (Sandbox Code Playgroud)

Waf等同于Makefile是wscript文件.它是一个python脚本waf读取,它定义了至少3个函数: set_options(),configure(conf)build(bld).你可以猜出他们每个人做了什么.

要快速启动,我建议查看源代码发行版中的demos/cpp/*文件.另请查看doc/waf.pdf文件; 这是一个12页的文档,可以快速启动并运行.

  • 速度5.5KB?试试2.1*MB*!! (2认同)
  • SCons也很慢.我已经使用它一年或更长时间了,并希望尽快转向Waf. (2认同)

Joh*_*ulé 11

要比较各种C++构建工具的速度,您可以查看此基准测试:http: //retropaganda.info/~bohan/devel/wonderbuild/benchmarks/time.xml


Gre*_*eld 5

我们将Jam用于复杂的C++项目 - 一个好处是它很好地跨平台.而不是我掏出好处,只需快速浏览一下这个链接:http: //www.perforce.com/jam/jam.html


Ant*_*amp 5

Noel Llopis撰写了一些比较构建系统的文章."追求完美构建系统"的第1部分位于http://gamesfromwithin.com/the-quest-for-the-perfect-build-system.第2部分在同一网站上.有关Scons的重试,请访问http://gamesfromwithin.com/?p=104.

结论:SCons太慢了...... Jam是胜利者.