用于编译C的autotools或cmake

时间:2012-08-12 15:51:05

标签: c autotools

对于所有主要的unix系统,autotools是否已经开箱即用?我正在寻找能够编译代码而无需安装任何其他软件和平台的东西(UNIX风格和架构)。

3 个答案:

答案 0 :(得分:3)

如果正确使用自动工具,最终结果是脚本configure,以便

 configure
 make
 make install

有效 - 是的,autotools的重点在于它应该适用于所有地方。

答案 1 :(得分:0)

我最近和整体都使用过cotke而不是autotools。我发现cmake更简单,需要更少的脚本。虽然cmake make必须作为一个选项安装,但大多数Linux发行版都会包含两个包。

Autotools适用于简单的项目,但根据我的经验,在检查库等时需要大量额外的脚本 - 另一方面,cmake使检测依赖项变得简单。您也可以不关心加分 - 但它也可以更轻松地在Windows平台上编译代码

答案 2 :(得分:-1)

Autotools 只需要安装在开发人员的系统上,而不能安装在 builder 的系统上。它们的输出是一个独立的sh脚本,它将创建所需的Makefile。在某些情况下(例如“自动”依赖关系),构建器也可能需要 autotools ,并且需要特定版本并不罕见。

autotools 基本上是一个巨大的脚本模糊的kludges集合,由指令文件驱动,用更加模糊的宏语言编写 - m4。如果您发现项目将被交叉编译的任何远程机会,那么请远离 autotools 及其兄弟姐妹(阅读 libtool )。

cmake 是一个更好的选择,但有更好,更精简的程序,如scons

但是,我必须承认,今天的大多数Unix系统大多数都符合ANSI C和POSIX标准,而不是10年前,也就是说,构建了 autotools 的时间。除了经典的 make 之外,我几乎看不到任何需要,能够以便携的方式编译你的项目。