前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >make编译安装程序的技巧

make编译安装程序的技巧

作者头像
鳄鱼儿
发布2024-08-19 14:06:29
1360
发布2024-08-19 14:06:29
举报
文章被收录于专栏:鳄鱼儿的技术分享

前言

在 Linux 中,源码安装软件灵活且适应性强,适用于各种平台,同时也方便维护,比如我们可以指定安装路径。

通常,源码安装包括以下三个步骤:

  1. 配置(configure
  2. 编译(make
  3. 安装(make install

每个软件的具体安装方法通常会在文档中详细说明。这里特别介绍一下配置过程中 configure--prefix 选项的使用方法。

配置安装路径

假设我们要安装软件 strongswan 并希望将其安装到 /ipsec 目录。在 strongswan 目录中执行以下命令:

代码语言:javascript
复制
./configure –prefix=/ipsec

通过 ./configure 配置成功后,再执行编译和安装命令(makemake install)。

安装完成后,所有相关文件将被放置在 /ipsec 目录中。

为什么要指定 --prefix 选项?

指定安装目录有以下几个好处:

  1. 方便维护:如果不指定 --prefix,安装过程会将文件分散到多个系统目录中,后续维护时很难确定哪些文件被安装到了哪些位置。
  2. 简化卸载:如果某个软件不再需要,直接删除指定的安装目录即可干净卸载该软件。
  3. 方便移植:只需将整个目录拷贝到另一台相同操作系统的机器上即可完成软件移植。

注意

  • ./configure --prefix=/ 仅用于指定程序的存放路径。
  • 如果不指定 --prefix,默认情况下,可执行文件会放在 /usr/local/bin,库文件放在 /usr/local/lib,配置文件放在 /usr/local/etc,其他资源文件放在 /usr/local/share
  • 编译安装完成后,源码也不要随意删除了,我们还可以通过 make uninstall 指令卸载目标程序。

Make 命令说明

Makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 就像一个 Shell 脚本一样,其中也可以执行操作系统的命令

makefile 是什么

Makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 就像一个 Shell 脚本一样,其中也可以执行操作系统的命令。

Makefile 带来的好处就是–“自动化编译”, 一旦写好,只需要一个 make 命令,整个工程完全自动编译,极大的提高了软件开发的效率。Make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数的 IDE 都有这个命令,比如:Delphi 的 make, Visual C++的 nmake, Linux 下 GNU 的 make. 可见,makefile 都成为了一种在工程方面的编译方法。

常用 make 命令
  • make 根据 Makefile 文件编译源代码、生成目标文件和可执行文件。
  • make clean 清理上次编译产生的对象文件(如 .o 文件)和可执行文件。
  • make install 将编译成功的可执行文件安装到系统目录中,通常为 /usr/local/bin
  • make dist 生成发布软件包,通常为一个 tar.gz 压缩文件,用于发布软件。
  • make distcheck 生成发布软件包并进行测试检查,确保发布包的正确性。
  • make distclean 类似于 make clean,但还会删除由 configure 生成的文件,包括 Makefile。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 配置安装路径
    • 为什么要指定 --prefix 选项?
    • Make 命令说明
      • makefile 是什么
        • 常用 make 命令
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档