
./configure 是 Linux 系统上常用的配置和准备编译源代码的方法。该命令通常在 make 命令之前运行。理解 ./configure 可以让您更好地控制编译过程,并帮助您根据特定需求定制构建。
./configure 的作用
当你运行 ./configure 脚本时,它执行以下几个任务为编译源代码做准备。
Checking for Dependencies
该脚本检查是否安装了所需的依赖项,例如库和工具。如果缺少任何依赖项,通常会提示并停止配置进程。
Setting up configuration options
该脚本允许您指定各种配置选项,例如的库的位置、安装类型以及软件编译后要包含的特性。
Creating makefiles
设置了依赖项和配置选项后,脚本就会创建 makefiles,它们被 make 命令用来编译软件。makefile 包含关于如何编译软件的信息,例如:源文件的位置,要传递给编译器的选项,以及依赖项。
Running some basic tests
该脚本还在系统上运行一些基本测试,以确保系统兼容正在安装的软件。测试涵盖系统的体系结构、操作系统和其他特定于系统的细节。
运行 ./configure
在 Linux 中,软件包可以使用包管理器或从源代码编译安装,大部分的源代码包含 ./configure 脚本。
例如,我的系统上有 Python 源代码。然后运行 ./configure 命令,如下所示:

./configure 成功运行后,系统中会创建 Makefiles,它将被 make 用来编译源代码并安装到你的机器上。您可以使用 ls 命令查看用 ./configure 脚本生成的文件。

./configure 常用选项
./configure 命令最基本用法是不带任何选项运行它,这将使用默认设置检查并将生成配置。
(1)指定安装目录
--prefix 选项允许您指定软件的安装目录。默认情况下, 软件通常安装在 /usr/local/ 目录中。
./configure --prefix=/usr/local/mysoftware/
(2)启用 / 禁用功能
--enable-feature 和 --disable-feature 选项允许启用或禁用软件的特定功能。例如,安装一款图像处理软件,禁用支持 PNG 图像格式。
./configure --disable-png
(3)指定依赖项位置
--with-package and --without-package 选项允许您指定软件的外部依赖项位置。
./configure --with-ssl=/usr/local/ssl
(4)启用 debug 调式
--enable-debug 选项在编译期间启用调试信息,这对软件故障排除和调试问题很有用。
(5)查询帮助信息
--help 选项可用于查看所有可用选项的列表。
(6)传递其它标识
此外,您还可以使用 CFLAGS 和 LDFLAGS 环境变量向编译器和链接器 传递标识。例如,要在编译期间启用其他优化标识。
CFLAGS="-O3" LDFLAGS="-O3" ./configure
