我想知道是否有任何漂亮而又整洁的工具来替换GNU Autotools或Make来构建一个非常大的C++项目,这是一个非常复杂的事情.
如果项目很小,生成de Autotools所需的所有文件很简单,但如果源代码分为多个目录,多个第三方库和许多依赖项,则属于"Autotools Hell".
谢谢你的任何建议
CMake?(生成makefile,因此技术上不是替代品).
我最近也看到" SCons "出现在几个地方.虽然我自己没有创造任何东西.
在谷歌的V8 JavaScript引擎是用C++编写,并使用SCons的,所以我想这是因为它一票.
看看waf.
我认为您可以将其视为制造和自动工具的完全替代品.它基于python.我喜欢waf的一件事是waf脚本本身是你放在项目根目录中的~100kb独立版.这与make或rake和朋友形成对比,其中必须首先安装构建系统.你必须安装python> = 2.3.
~$ ./waf configure && ./waf && ./waf install
Waf等同于Makefile是wscript文件.它是一个python脚本waf读取,它定义了至少3个函数: set_options()
,configure(conf)
和build(bld)
.你可以猜出他们每个人做了什么.
要快速启动,我建议查看源代码发行版中的demos/cpp/*文件.另请查看doc/waf.pdf文件; 这是一个12页的文档,可以快速启动并运行.
要比较各种C++构建工具的速度,您可以查看此基准测试:http: //retropaganda.info/~bohan/devel/wonderbuild/benchmarks/time.xml
我们将Jam用于复杂的C++项目 - 一个好处是它很好地跨平台.而不是我掏出好处,只需快速浏览一下这个链接:http: //www.perforce.com/jam/jam.html
Noel Llopis撰写了一些比较构建系统的文章."追求完美构建系统"的第1部分位于http://gamesfromwithin.com/the-quest-for-the-perfect-build-system.第2部分在同一网站上.有关Scons的重试,请访问http://gamesfromwithin.com/?p=104.
结论:SCons太慢了...... Jam是胜利者.