在Linux中,"./configure"有哪些选项/参数?

74

我发现在Linux上安装新软件时,我总是需要首先使用configure命令。

但有时候我们需要传递各种选项,就像我今天安装lxml时所做的一样:

./configure --with-python=/opt/python27/bin/python 
--prefix=/usr/local 
--with-libxml-prefix=/usr/local 
--with-libxml-include-prefix=/usr/local/include 
--with-libxml-libs-prefix=/usr/local/lib

现在我想知道一个人如何知道可以使用哪些参数,比如--with-python是什么类型的参数?
我的意思是:

  1. 这些参数是否适用于所有软件包,还是因软件而异?

  2. 我甚至尝试阅读文档,但没有人提到这些参数。


2
看一下脚本:less configure - Michael
我只能用通俗易懂的语言来解释 - 但是先输入 ./configure,然后使用自动完成(按tab键),你会得到一个可能选项的列表。这些选项绝对是独一无二的,取决于实际的软件。 - Max
10
@Mikaveli:真的吗?这是一个自动生成的脚本,旨在尽可能地具有可移植性和稳健性(而不是易读性),因此极难阅读(就像它生成的makefile一样),不适合手动检查。使用“./configure --help”是正确的方式。只需按照任意Autotools教程,从其超级简单的“configure.in”生成配置脚本,然后尝试阅读即可。 - user395760
@delnan:我也看到了很多手动创建的配置脚本,所以我总是先快速浏览一遍。 :) - Michael
4个回答

135
./configure --help

这将为您显示特定configure脚本的所有选项。


从来不知道那是标准做法...哇。我喜欢在CLI中使用应用程序和命令,很棒能知道./configure [OPTION]可以被列出。感谢您的回答。 - TryTryAgain
1
这似乎并不全面。例如:"--disable-shared"没有列出,但是"--disable-FEATURE"列出了,但必须在别处查看可用的“FEATURE[s]”。这就是我正在寻找的内容,也引导我来到这里。现在我必须自己去阅读文档。 - TheHairyOne

4

有些选项是由Autoconf生成的所有配置脚本共用的(大部分都是这样,但不是全部),例如--prefix基本上是通用的。其他选项则是特定于特定的配置脚本的。


3

./configure --help总是很有帮助的。但我要说的是,在某些软件包中,不仅在顶层源目录中有一个configure脚本,而且还可能在子目录中出现。因此,为了了解可以传递给顶层源目录中的configure脚本的所有可能参数,您还应该查看每个可能的子目录中的configure脚本。

例如,在binutils-2.34 tarball的顶层源目录中有--with-sysroot--with-lib-path参数及其对应的configure脚本。如果您在顶层源目录下键入./configure --help,则对于它们两者都没有文档项,因为它们在ld/子目录configure脚本中记录。因此,您应该键入./ld/configure --help


1

我知道关于configure --help,但提供的信息还是比较“简略”的。以下GNU资源包含有用的附加信息:

安装目录变量

发布过程


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接