Autoconf和AutoTool的替代方案?

Autoconf和AutoTool的替代方案?,c,autotools,autoconf,C,Autotools,Autoconf,我是GNU的一个非常频繁的用户(大部分,偶尔)。我正在做一个项目,可移植性将成为一个关键点。。然而,团队的其他成员只是不喜欢与他们一起工作。我的收件箱里不是一个人,而是四个人: 无论如何,也许有人可以推荐一些基于Python或PHP的东西?我在一棵更大的树的C端工作;我可以肯定Python或PHP5都会出现,因为它们是先决条件。我在这方面取得了很好的成功。它是用Python构建的,构建脚本实际上是Python脚本本身,这提供了很大的表达能力。从网站: SCons是一种开源软件构建工具,即下一代

我是GNU的一个非常频繁的用户(大部分,偶尔)。我正在做一个项目,可移植性将成为一个关键点。。然而,团队的其他成员只是不喜欢与他们一起工作。我的收件箱里不是一个人,而是四个人:


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

我在这方面取得了很好的成功。它是用Python构建的,构建脚本实际上是Python脚本本身,这提供了很大的表达能力。从网站:

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


我听说过一些好的东西,它们试图解决同样的问题。是维基百科的文章

我已经看过CMake,它看起来是一个不错的选择,除非你是交叉编译。如果您正在进行本机编译,您应该尝试一下

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

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

  • (又名BJam,C++)
也可用,但不严格针对C/C++:

  • (适用于Java)
  • (适用于Ruby)
  • (肯定更多,我只是不完全了解他们…)

但在列出所有这些之后,autotools的最大优点是不需要终端用户有任何其他依赖关系。配置脚本只由开发人员生成一次,并且不需要在用户端执行任何特殊操作,因为它是一个shell脚本。上面列出的工具必须在任何人构建您的源代码之前安装,它们本身甚至可能具有依赖性。

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

< P>我正在冒被否决的机会,但我必须承认,不幸的是,没有真正的替代工具。CMake、SCons和bjam都很好,但是,当涉及到严肃的工作时。。。很明显,自动工具的优越性并不是因为CMake不能做同样的事情,而是因为用它做起来要困难得多

例如,最受欢迎的自动工具替代品CMake有以下缺点:

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

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

简单地使用和如何

这是一个让你开始的方法


人少即是人多。

再多一个自动*更换-。可以找到文件

使用它很长时间了,没有什么大问题。我也会提出同样的建议。不久前,我问了自己这个问题,并得出结论,CMake是正确的答案。谢谢,看起来CMake会完全满足我的需要。这些天,如果我甚至在我的办公桌上用手电筒和干草叉低声说“autoconf”的话:|配置脚本需要一个兼容sh的shell,这在windows机器上是很特别的。那么,如果你在windows上还需要其他软件,那又有什么意义呢?如果你安装python或一些shell,没有什么区别。在@Caotic中有一个包含更多详细信息的大列表,我不知道2009年是什么样子,但我认为至少几年前,由于GFW/git bash的流行,与bourne兼容的shell不再是“windows机器上的特殊东西”。在我工作的地方,一个没有安装类似东西的开发人员至少会让我感到惊讶。另一方面,Make/autotools可能需要安装MSYS2。你说的都是真的!!如果您坚持使用Windows/Linux x86/Mac OS X SCons和CMake,那么它看起来比自动工具更简单。但是如果你来到一个不寻常的平台,你会遇到很多问题……人们往往忽视了Autotools是用m4编写的原因。它是用m4编写的,因此可以在纯shell中生成configure脚本,从而可以针对任何UNIX平台。另一方面,CMake的目标是具有CMake的任何对象。现在什么更常见?科马克还是伯恩壳牌?我倾向于说伯恩·谢尔。Windows也忽略了AutoCONF的缺点,它提供了一个像样的外壳。我认为这是最好的答案。我经常使用自动工具,有时确实很痛苦。但是我总是能把事情办好,并且为生成的configure和Makefile提供的标准自动工具非常有用。我偶尔会使用cmake,我必须承认它更难使用(就像在构建源代码中一样),而且没有足够的在线资源来快速获取我使用autotools所做的事情。即使Bourne Shell很可能已经安装,您仍然需要下载一些东西才能构建项目(至少是源代码,但最有可能是几个依赖项)。由于大量项目现在需要CMake,CMake很有可能已经安装