4

我一直在搜索stackoverflow,但我没有找到一个令人满意的答案来解决我的问题。

Miller 的论文Recursive Make Considered Harmful在社区中广为人知。基本上,多年来我一直在使用非递归 make来管理我的项目的构建。到目前为止,我在非递归 make 方面的经验非常积极。

为了给其他人一些启发,我已经成功构建了包含大约 200 万行代码的 C++ 代码库。我能够正确管理依赖项。非递归方法的好处是我们可以利用并行构建。

我已经证明,这份报告中的数据与至少 5 个大型项目是一致的。但是我一直在手动编写/移植非递归make的makefile。

正如您可能想象的那样,对于大型项目,这涉及大量工作。此外,主要挑战是新团队成员很难理解/修改/调试现有的 makefile。

所以我的问题是:社区中是否有人知道任何可以进行非递归生成但在更高抽象级别管理生成文件的工具/脚本?我想了解是否有人编写了一些脚本或工具来从一些简单的输入规范生成最终的非递归生成文件。

4

1 回答 1

0

我正要阅读这篇论文,但似乎主要问题是微小更改导致的构建时间很长。

虽然构建系统一般都很糟糕(我有自己制作的幻想),但我不得不建议 CMake(就像 hyde 所做的那样)。

虽然不完美,但对于多个文件的项目,它优于普通制作。脚本语言有些丑陋,但比 make 的要好。这需要一点时间来适应,因为它抽象出了很多你会在 make 中手动编写的内容,但我建议这样做: http ://web.cs.swarthmore.edu/~adanner/tips/cmake.php

于 2012-11-15T05:49:13.883 回答