60

我是 GNU Autotools(主要是Autoconf,偶尔是Libtool)的一个非常频繁的用户。我正在从事一个项目,其中可移植性将成为一个症结。然而,团队的其他成员只是不习惯使用m4。我收件箱中收到的不是一个人,而是四个人:

m4 不是口齿不清,该死!

无论如何,也许有人可以推荐一些基于 Python 或 PHP 的东西?我正在研究一棵更大的树的 C 端;我可以肯定 Python 或 PHP 5 都会出现,因为它们是先决条件。

4

9 回答 9

56

我冒着被否决的机会,但我必须承认,不幸的是,没有真正的自动工具替代品。CMake、SCons、bjam 都不错,但是,当涉及到严肃的工作时……很明显,自动工具更胜一筹,不是因为 CMake 不能做同样的事情,而是因为用它来做这件事要困难得多.

例如,最流行的自动工具替代品 CMake 有以下缺点:

  • 不支持gettext。当您需要管理大量翻译和已翻译的源代码时,这可能是一个真正的问题。
  • 不支持卸载目标。发现无法卸载已安装的程序,真是令人不快。
  • 不会自动构建共享库和静态库
  • 文档非常有限而且很糟糕。

等等。

还有很多其他的点。不幸的是,没有真正高质量的自动工具替代品。另一方面,如果您在 WindowsVisual Studio 上进行开发,则不能使用自动工具,您需要选择提供此类工具的 CMake。

于 2009-07-13T18:56:30.353 回答
39

我在SCons上取得了很好的成功。它是用 Python 构建的,构建脚本实际上是 Python 脚本本身,它具有很强的表现力。从网站:

SCons 是一种开源软件构建工具,即下一代构建工具。将 SCons 视为经典Make实用程序的改进的跨平台替代品,其集成功能类似于autoconf/automake编译器缓存(如ccache. 简而言之,SCons 是一种更简单、更可靠、更快速的软件构建方式。

于 2009-03-01T18:53:42.190 回答
39

我听说过CMake试图解决相同问题的好消息。是维基百科的文章

于 2009-03-01T18:54:43.747 回答
19

有很多不同的替代 Makefile 生成器和构建系统:

也可用,但不严格针对 C/C++:

  • 预制
  • 蚂蚁(Java)
  • 耙子(对于 Ruby)
  • (当然更多,我只是不认识他们......)

但是在列出所有这些之后,autotools 的巨大优势是不需要最终用户的任何其他依赖项。配置脚本仅由开发人员生成一次,并且不需要在用户端进行任何特殊处理,因为它是一个 shell 脚本。必须先安装上面列出的工具,然后任何人都可以构建您的源代码,他们甚至可能自己有依赖项。

于 2009-03-02T18:22:05.473 回答
16

简单地使用Makepkg-config怎么样?

这是一个让您入门的Makefile 模板。

少就是多的人。

于 2009-10-11T17:01:41.770 回答
4

另一个自动* 替换 - mk-configure。文档可以在这里找到

于 2011-09-27T12:27:57.273 回答
3

我看过 CMake,除非您进行交叉编译,否则它看起来是一个不错的选择。如果你在做原生编译,你应该试试

于 2009-03-01T19:17:23.973 回答
1

Mozilla 正在创建一个 python 版本的 make - pymake - 它可能支持跨平台使用。

于 2009-03-01T19:33:39.473 回答
1

对于从 ANT 或 maven 构建 C/C++ 软件,您可能对terp感兴趣。它包括一个可移植的 C++ 编译器任务,可与许多平台上的许多 C++ 编译器一起使用。

于 2009-07-13T18:47:11.560 回答