./configure、 make、 make install

https://thoughtbot.com/blog/the-magic-behind-configure-make-make-install

✨ 什么是 ./configure && make && make install

这是在类 Unix 系统中,从源码安装软件时的“三步走”流程,几乎是开源软件的标配流程。


🧩 第一步:./configure —— 配置软件,生成 Makefile

这一步的作用是:

  • 检查系统环境是否满足构建条件(比如有没有 C 编译器、依赖库等)
  • 判断系统路径、特性、头文件是否存在
  • 用模板文件 Makefile.in 生成适用于你本机的 Makefile

📌 举个例子:

如果源码目录中有一个 configure.ac 文件,通过 autoconf 工具可以生成这个 configure 脚本。configure 脚本运行后会“根据你的系统量身定做一份 Makefile”。


🛠️ 第二步:make —— 编译源码

  • make 会读取刚才 configure 生成的 Makefile
  • 然后按照里面的规则一步步编译源代码(比如 .c 文件)生成最终的可执行程序(比如 helloworld
  • 所以 make 的本质是“根据说明书,动手盖房子”

📌 小知识:源码压缩包通常只包含 Makefile.in,需要 configure 先生成具体的 Makefile 才能执行。


📦 第三步:make install —— 安装程序

  • 把刚刚编译好的可执行文件、库、文档等复制到系统的合适位置
    • 比如 /usr/local/bin 放可执行文件
    • /usr/local/share/man 放手册
  • 安装路径可以通过 ./configure --prefix=/your/path 控制
  • 有时需要 sudo 权限(因为要写入系统目录)

📌 小技巧:你可以用 DESTDIR--prefix 控制安装到用户目录,比如 ~/.local/bin


🧙‍♂️ 这些脚本是哪里来的?

  • configure 脚本和 Makefile.in 并不是开发者手写的(太复杂了)
  • 它们通常是通过一套叫 Autotools 的工具自动生成的,主要包括:
    • autoconf: 读 configure.ac → 生成 configure
    • automake: 读 Makefile.am → 生成 Makefile.in

所以维护者编写的是:

  • configure.ac(描述配置过程)
  • Makefile.am(描述构建规则)

而最终用户看到的是:

  • configure(可执行脚本)
  • Makefile(构建说明)

🔧 打包整个流程总结

开发者端:

aclocal              # 设置 m4 环境
autoconf             # 生成 configure 脚本
automake --add-missing  # 生成 Makefile.in

用户端使用:

./configure          # 检查系统,生成 Makefile
make                 # 编译源码
make install         # 安装程序


🎁 总结一句话:

./configure && make && make install 是一种通用的开源软件安装规范流程,配置 → 编译 → 安装,背后是 Autotools 工具链的支撑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值