首页 > 运维 > linux运维 > 正文

如何编译安装源码包 configure/make编译流程详解

P粉602998670
发布: 2025-08-29 11:47:01
原创
306人浏览过

编译安装源码包的步骤为:1. 从官网等可靠来源下载.tar.gz或.tar.bz2格式的源码包;2. 使用tar命令解压源码包,如tar -zxvf package.tar.gz或tar -jxvf package.tar.bz2;3. 进入解压后的源码目录,使用cd命令切换路径;4. 运行./configure脚本检查系统环境并生成makefile文件,可通过--prefix指定安装路径,若缺少依赖则需根据提示安装对应开发库;5. 执行make命令根据makefile编译源码,可使用make -j n利用多核加速编译;6. 执行sudo make install将编译好的文件安装到指定目录,此步通常需要root权限;7. 若安装路径非标准目录,需修改~/.bashrc或~/.zshrc文件,添加path和ld_library_path环境变量,并执行source命令使其生效。

如何编译安装源码包 configure/make编译流程详解

简单来说,编译安装源码包就是把一堆人类能看懂的代码,变成机器能执行的程序。Configure负责配置编译环境,Make根据配置好的环境进行编译,最后Make install将编译好的程序安装到指定位置。这就是一个化腐朽为神奇的过程。

解决方案

编译安装源码包通常遵循以下步骤:

立即进入豆包AI人工智官网入口”;

立即学习豆包AI人工智能在线问答入口”;

  1. 获取源码包: 从官方网站或者其他可靠来源下载源码包,通常是

    .tar.gz
    登录后复制
    .tar.bz2
    登录后复制
    格式的压缩文件。

  2. 解压源码包: 使用

    tar
    登录后复制
    命令解压源码包。例如:

    tar -zxvf package.tar.gz  # 解压.tar.gz文件
    tar -jxvf package.tar.bz2  # 解压.tar.bz2文件
    登录后复制
  3. 进入源码目录: 使用

    cd
    登录后复制
    命令进入解压后的源码目录。

  4. 运行

    configure
    登录后复制
    脚本: 这是编译安装的关键步骤。
    configure
    登录后复制
    脚本会检查你的系统环境,比如是否安装了必要的依赖库,然后生成
    Makefile
    登录后复制
    文件。

    ./configure --prefix=/usr/local/package  # 指定安装目录,默认是/usr/local
    登录后复制

    --prefix
    登录后复制
    选项指定了程序的安装目录,如果不指定,默认安装到
    /usr/local
    登录后复制
    目录下。还可以根据需要添加其他选项,例如
    --enable-feature
    登录后复制
    --disable-feature
    登录后复制
    来启用或禁用某些功能。

    如果缺少依赖,

    configure
    登录后复制
    会报错,你需要根据错误提示安装相应的依赖库。在Debian/Ubuntu系统上,可以使用
    apt-get install
    登录后复制
    命令安装,在CentOS/RHEL系统上,可以使用
    yum install
    登录后复制
    命令安装。

  5. 运行

    make
    登录后复制
    命令:
    make
    登录后复制
    命令会根据
    Makefile
    登录后复制
    文件中的指令,将源码编译成可执行文件。

    make
    登录后复制

    如果你的系统是多核处理器,可以使用

    make -j <number_of_cores>
    登录后复制
    来并行编译,加快编译速度。例如,如果你的系统有8个核心,可以使用
    make -j 8
    登录后复制

    编译过程中可能会出现错误,你需要根据错误提示修改源码或者安装缺失的依赖库。

  6. 运行

    make install
    登录后复制
    命令:
    make install
    登录后复制
    命令会将编译好的可执行文件、库文件、配置文件等安装到指定目录。

    sudo make install  # 需要root权限
    登录后复制

    通常需要

    root
    登录后复制
    权限才能执行
    make install
    登录后复制
    命令,因为系统目录通常需要
    root
    登录后复制
    权限才能写入。

  7. 配置环境变量: 如果程序安装到了非标准目录,你需要将程序的安装目录添加到环境变量中,才能在命令行中直接运行程序。

    修改

    ~/.bashrc
    登录后复制
    ~/.zshrc
    登录后复制
    文件,添加以下内容:

    豆包AI编程
    豆包AI编程

    豆包推出的AI编程助手

    豆包AI编程483
    查看详情 豆包AI编程
    export PATH=$PATH:/usr/local/package/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/package/lib
    登录后复制

    然后执行

    source ~/.bashrc
    登录后复制
    source ~/.zshrc
    登录后复制
    命令,使环境变量生效。

为什么
configure
登录后复制
脚本很重要?它做了哪些事情?

configure
登录后复制
脚本就像一个项目经理,负责统筹整个编译过程。它主要做了以下几件事情:

  • 检查系统环境: 检查编译器、库文件等依赖是否安装,版本是否符合要求。
  • 生成
    Makefile
    登录后复制
    根据系统环境和用户指定的选项,生成
    Makefile
    登录后复制
    文件。
    Makefile
    登录后复制
    文件包含了编译的指令,
    make
    登录后复制
    命令会根据
    Makefile
    登录后复制
    文件中的指令进行编译。
  • 创建目录: 创建必要的目录,例如安装目录、临时目录等。
  • 执行其他配置任务: 根据具体的项目,执行其他配置任务,例如生成配置文件、设置编译选项等。

configure
登录后复制
脚本的目的是为了让编译过程更加自动化和可移植。它可以根据不同的系统环境生成不同的
Makefile
登录后复制
文件,从而保证程序可以在不同的系统上编译和运行。

遇到
configure
登录后复制
报错,常见的错误有哪些?如何解决?

configure
登录后复制
报错是编译安装过程中常见的问题。常见的错误包括:

  • 缺少依赖库: 错误提示通常会告诉你缺少哪个库,例如
    configure: error: *** libpng not found
    登录后复制
    解决方法是安装相应的库。在Debian/Ubuntu系统上,可以使用
    apt-get install libpng-dev
    登录后复制
    命令安装,在CentOS/RHEL系统上,可以使用
    yum install libpng-devel
    登录后复制
    命令安装。注意,需要安装的是
    -dev
    登录后复制
    -devel
    登录后复制
    后缀的开发包,而不是运行时库。
  • 编译器版本不符合要求: 错误提示通常会告诉你编译器版本过低或过高。解决方法是升级或降级编译器。
  • 权限不足: 错误提示通常会告诉你没有权限创建目录或写入文件。解决方法是使用
    sudo
    登录后复制
    命令运行
    configure
    登录后复制
    脚本,或者修改目录的权限。
  • 其他错误: 错误提示可能是一些其他的错误,例如配置文件错误、脚本错误等。解决方法是仔细阅读错误提示,查找相关的资料,或者向社区寻求帮助。

解决

configure
登录后复制
报错的关键是仔细阅读错误提示,理解错误的原因,然后根据错误的原因采取相应的解决方法。

make
登录后复制
make install
登录后复制
区别是什么?

make
登录后复制
命令负责将源码编译成可执行文件,而
make install
登录后复制
命令负责将编译好的可执行文件、库文件、配置文件等安装到指定目录。

make
登录后复制
命令只是编译源码,不会修改系统文件。而
make install
登录后复制
命令会修改系统文件,例如将可执行文件复制到
/usr/local/bin
登录后复制
目录下,将库文件复制到
/usr/local/lib
登录后复制
目录下,将配置文件复制到
/usr/local/etc
登录后复制
目录下。因此,通常需要
root
登录后复制
权限才能执行
make install
登录后复制
命令。

可以把

make
登录后复制
看作是生产零件,
make install
登录后复制
看作是组装和安装。

如何卸载通过源码编译安装的软件?

卸载通过源码编译安装的软件,通常没有像包管理器那样方便的卸载命令。一般来说,有以下几种方法:

  1. 使用

    make uninstall
    登录后复制
    命令: 有些源码包提供了
    make uninstall
    登录后复制
    命令,可以直接卸载软件。在源码目录下执行
    sudo make uninstall
    登录后复制
    命令即可。但是,并不是所有的源码包都提供了
    make uninstall
    登录后复制
    命令,如果没有,就需要手动卸载。

  2. 手动删除文件: 手动删除安装目录下的文件。首先,你需要知道软件安装到了哪些目录。如果你在

    configure
    登录后复制
    的时候指定了
    --prefix
    登录后复制
    选项,那么软件就安装到了指定的目录下。如果没有指定,默认安装到
    /usr/local
    登录后复制
    目录下。然后,你需要手动删除这些目录下的文件。例如:

    sudo rm -rf /usr/local/package
    登录后复制

    这种方法比较麻烦,而且容易遗漏文件。

  3. 记录安装文件: 在安装之前,使用

    make install
    登录后复制
    命令的
    -n
    登录后复制
    选项,可以模拟安装过程,并输出安装的文件列表。然后,将这些文件列表保存下来,卸载的时候,就可以根据文件列表删除文件。例如:

    make install -n > install.log
    登录后复制

    然后,根据

    install.log
    登录后复制
    文件中的文件列表删除文件。

    这种方法比较可靠,但是需要提前做好准备。

卸载通过源码编译安装的软件需要小心谨慎,避免误删系统文件。建议在卸载之前备份相关文件。

以上就是如何编译安装源码包 configure/make编译流程详解的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号