在 Linux 系统中,configure 是一个由 GNU Autoconf工具生成的 shell 脚本,主要用于检测系统环境、配置编译选项,并生成 Makefile,它是许多开源软件(如 Nginx、MySQL、GCC 等)编译安装的第一步。
以下是关于 ./configure 的详细使用指南:
基本用法
进入软件源码目录后,通常执行以下命令:
./configure
如果一切正常,它会输出类似 configuration finished 的信息,并在当前目录生成 Makefile。
常用参数(选项)
./configure 支持大量参数,最常用的是指定安装路径和启用/禁用功能。
✅ 指定安装路径
./configure --prefix=/usr/local/myapp
- 这将把软件安装到
/usr/local/myapp目录下(包括 bin、lib、include 等)。 - 推荐:始终指定
--prefix,以便管理安装位置,避免污染系统目录。
✅ 启用/禁用功能
./configure --enable-feature # 启用某功能 ./configure --disable-feature # 禁用某功能
./configure --with-ssl=yes # 启用 SSL 支持 ./configure --without-pcre # 不启用 PCRE 库
✅ 指定其他库或工具路径
./configure --with-libcurl=/usr/local/curl ./configure --with-openssl-dir=/usr/local/openssl
✅ 查看帮助
./configure --help
⚠️ 注意:不同软件的
--help输出内容差异很大,需根据具体软件文档参考。
常见错误及解决方案
❌ 错误:command not found: ./configure
- 原因:源码包可能不是 Autoconf 生成的,或者你不在正确的目录。
- 解决:
- 确认你进入的是源码根目录。
- 有些项目使用
cmake、meson或autogen.sh代替./configure。 - 如果缺少
configure脚本,可能需要先运行autoreconf -fi生成它(需要安装autoconf、automake等工具)。
❌ 错误:checking for xxx... no 或 ERROR: xxx not found
-
原因:缺少依赖库或开发头文件。
-
解决:
-
根据提示安装缺失的开发包。
# Ubuntu/Debian sudo apt-get install libssl-dev libpcre3-dev zlib1g-dev # CentOS/RHEL sudo yum install openssl-devel pcre-devel zlib-devel
-
❌ 错误:permission denied
- 原因:
configure脚本没有执行权限。 - 解决:
chmod +x configure ./configure
❌ 错误:configure: error: C compiler cannot create executables
-
原因:未安装 C 编译器(gcc)或构建工具链。
-
解决:
# Ubuntu/Debian sudo apt-get install build-essential # CentOS/RHEL sudo yum groupinstall "Development Tools"
完整编译安装流程示例
以安装一个典型软件为例:
# 1. 解压源码 tar -zxvf software-1.0.tar.gz cd software-1.0 # 2. 配置(指定安装路径) ./configure --prefix=/usr/local/software # 3. 编译(生成二进制文件) make # 4. 安装(将文件复制到指定目录) sudo make install # 5. (可选)清理编译中间文件 make clean
高级技巧
📌 缓存配置结果(加速重复配置)
./configure 会保存检测结果到 config.cache,如果你多次运行 ./configure,它会跳过已检测的部分。
- 清除缓存:
make distclean # 或手动删除 rm -rf config.cache config.status Makefile
📌 使用 ccache 加速编译
如果频繁重新编译,可安装 ccache 来缓存编译结果:
export CC="ccache gcc" ./configure make
📌 交叉编译
为嵌入式设备编译时,需指定交叉编译器:
./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc
| 步骤 | 命令 | 说明 |
|---|---|---|
| 配置 | ./configure --prefix=/path |
检测环境,生成 Makefile |
| 编译 | make |
根据 Makefile 编译源码 |
| 安装 | sudo make install |
将编译好的文件安装到系统 |
| 清理 | make clean / make distclean |
删除编译中间文件 |
💡 提示:
./configure失败,请仔细阅读错误信息,通常它会明确指出缺少哪个库或工具,大多数现代项目也提供README或INSTALL文件,其中包含详细的依赖说明。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/483104.html



