我是自动工具的新手。据我理解,使用Autotools构建软件需要使用以下基本步骤:
autoreconf --install./configuremake但是,我注意到大多数开源软件包(在Linux上)并不需要第一步。大多数时候,他们只需要第二步和第三步来构建。他们似乎已经被打包了一个Makefile.in。我想知道为什么?他们是手动编写Makefile.in代码,还是软件开发人员在创建软件包之前使用autoreconf生成Makefile.in?
发布于 2013-10-09 05:49:22
创建tarball的软件开发人员(或从版本控制系统中检出源)通常会从名为bootstrap.sh或autogen.sh的脚本调用bootstrap.sh或autogen.sh,这可能会做其他事情。autoreconf也可以由Makefile调用(比如configure.ac已经更改时)。
大多数用户都不需要运行autoreconf,即使是那些正在对源代码进行一些修改的用户(例如补丁)。只有那些需要修改包本身(对configure.ac和/或Makefile.am进行更改)的人才需要autoreconf。
发布于 2016-06-13 20:48:44
运行autoreconf需要安装正确版本的自动工具。这就导致了鸡与蛋的问题--首先你是如何安装自动工具的?它还增加了大多数终端用户并不真正需要的额外依赖。
因此,大多数包程序在生成它们分发的源tarball之前运行autoreconf。这意味着,如果您下载这样一个tarball,您可以配置和构建它,而不需要首先安装自动工具。
https://stackoverflow.com/questions/19263899
复制相似问题