编译源码软件包的流程为:一、安装编译环境,如ubuntu下使用apt install build-essential,centos下使用yum groupinstall “development tools”;二、解压源码包并进入目录,命令为tar -xzf package-name.tar.gz;三、运行./configure检测系统环境并生成makefile,可指定–prefix、–enable-feature等选项;四、执行make编译源码,可使用make -j$(nproc)加速;五、运行sudo make install将文件安装到指定路径;六、可选make clean或make distclean清理,部分软件支持sudo make uninstall卸载;七、若无configure脚本需运行./autogen.sh生成,cmake项目则使用cmake ..代替configure。整个过程需注意依赖库和权限问题,成功的关键是正确处理configure输出的错误信息。

编译源码软件包是 Linux 或类 Unix 系统中安装软件的常见方式,尤其当你需要自定义配置、使用最新版本或系统包管理器未提供所需软件时。最常见的编译流程是
./configure && make && make install
。下面详细介绍这一流程的每一步及其原理和注意事项。
一、准备工作:安装编译环境
在开始之前,确保系统已安装必要的编译工具和依赖库。以常见的 Linux 发行版为例:
# Ubuntu/Debiansudo apt updatesudo apt install build-essential autoconf automake libtool# CentOS/RHEL/Fedorasudo yum groupinstall "Development Tools" # CentOS 7sudo dnf groupinstall "Development Tools" # Fedora/CentOS 8+
此外,还需根据具体软件包安装其依赖的开发库(如 OpenSSL、zlib、libcurl 等),否则
configure
阶段会报错。
二、解压源码包
通常源码包是
.tar.gz
或
.tar.xz
格式:
tar -xzf package-name.tar.gzcd package-name/
进入解压后的目录,你会看到
configure
脚本(或
configure.ac
/
configure.in
文件,说明需要先生成 configure)。
三、运行
./configure
:配置编译选项
configure
是一个由 Autoconf 生成的 shell 脚本,用于检测系统环境,生成 Makefile。
常用命令:
./configure
常见自定义选项:
--prefix=/usr/local
:指定安装路径(默认通常是
/usr/local
)
--enable-feature
:启用某项功能
--disable-feature
:禁用某项功能
--with-library
:指定依赖库路径
--without-library
:不使用某库
示例:
./configure --prefix=/opt/myapp --enable-shared --disable-static
configure 阶段做了什么?
检查编译器(gcc/clang)是否存在检查系统头文件和库是否齐全检测系统架构和特性(如是否支持 IPv6、线程等)根据检测结果生成
Makefile
和配置头文件(如
config.h
)
⚠️ 如果 configure 失败,查看输出中的错误信息,通常是缺少依赖库。根据提示安装对应 -dev 或 -devel 包。
四、运行
make
:编译源码
make
会根据
Makefile
中的规则编译源代码。
make
可选加速编译:
make -j$(nproc) # 使用 CPU 所有核心并行编译,加快速度
编译过程做了什么?
调用编译器(如 gcc)将
.c
文件编译为
.o
目标文件链接目标文件和依赖库,生成可执行文件或库文件可能还会生成文档、脚本等辅助文件
✅ 成功后你会在源码目录看到生成的二进制文件(如
src/myprogram)。
五、运行
make install
:安装软件
将编译好的文件复制到系统指定位置(由
--prefix
决定):
PHP Apache和MySQL 网页开发初步
本书全面介绍PHP脚本语言和MySOL数据库这两种目前最流行的开源软件,主要包括PHP和MySQL基本概念、PHP扩展与应用库、日期和时间功能、PHP数据对象扩展、PHP的mysqli扩展、MySQL 5的存储例程、解发器和视图等。本书帮助读者学习PHP编程语言和MySQL数据库服务器的最佳实践,了解如何创建数据库驱动的动态Web应用程序。
385 查看详情
sudo make install
注意:
make install通常需要 root 权限,因为它会写入
/usr/local等系统目录。
安装做了什么?
将可执行文件复制到
bin/
库文件复制到
lib/
头文件复制到
include/
配置文件复制到
share/
或
etc/
六、可选:清理和卸载
清理编译产物:
make clean # 删除编译生成的文件,保留 Makefilemake distclean # 更彻底,删除 configure 生成的文件(推荐重新配置前使用)
卸载软件:
如果软件支持,可用:
sudo make uninstall
⚠️ 并非所有软件都提供
uninstall目标,建议使用
checkinstall或记录安装文件以便后续管理。
七、特殊情况处理
1. 没有
configure
脚本?
如果只有
configure.ac
或
autogen.sh
,需要先生成
configure
:
./autogen.sh # 或autoreconf -i
这需要安装
autoconf
、
automake
、
libtool
等工具。
2. CMake 项目?
有些项目使用 CMake 而非 Autotools:
mkdir build && cd buildcmake ..makesudo make install
流程类似,但工具链不同。
总结流程
tar -xzf software.tar.gzcd software/./configure --prefix=/usr/local --enable-featuremake -j$(nproc)sudo make install
基本上就这些。关键是看懂
configure
的输出,及时解决依赖问题。虽然过程看似复杂,但一旦掌握,就能灵活控制软件的安装行为。
不复杂,但容易忽略依赖和权限问题。
以上就是如何编译源码软件包 configure/make流程的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/808555.html
微信扫一扫
支付宝扫一扫