make, make install详解

一、make、make install、make clean是什么

在开发中,我们会看到很多软件的源码都是以.tar.gz压缩包的形式分发的,这个时候我们就需要使用到make、make install、make clean命令了。它们在Linux开发环境中非常常用,是对源码进行编译、安装的必不可少的几个指令。

make:是一个命令工具,通常用于对程序进行编译。

make install:是将编译好的程序安装到系统中,这样就可以在命令行中输入程序名来运行它。

make clean:是将编译生成的文件全部删除,包括中间文件和可执行文件。

二、makefile文件的作用

makefile文件是一个包含一系列规则用于告诉make命令如何编译和链接源文件的文件。当你输入make命令的时候,make先读取当前目录下的makefile文件,根据规则来进行编译和链接操作。

使用makefile,我们就可以很容易地定制编译过程,使得编译速度更加快速和稳定。

三、makefile文件的编写规范

makefile文件中通常包含一些基本结构,如:

target ... : prerequisites ...
        command
        ...
        ...
  • target:表示目标文件名,可以是可执行程序、中间目标(.o文件)等。
  • prerequisites:表示依赖的文件,即生成目标文件所需要的文件。
  • command:表示执行该规则时,需要执行的命令。

四、make指令的执行顺序

当我们在执行make指令时,make会按照以下顺序执行:

  1. make会检查所有的依赖文件是否存在;
  2. 如果依赖文件中有文件被修改,那么会重新生成该文件;
  3. 生成所有目标文件,包括可执行的文件、中间文件等;
  4. 执行make install指令,将生成的文件安装到系统中。

五、make和make install示例

下面以hadoop-2.8.4源码为例,演示make和make install的具体操作步骤。

1、解压hadoop-2.8.4源码文件,并进入该目录。

$ tar xzvf hadoop-2.8.4.tar.gz
$ cd hadoop-2.8.4/

2、执行configure命令,该命令会根据当前系统的环境配置生成makefile文件。

$ ./configure

3、执行make命令,该命令会根据makefile文件中的规则把源文件编译成可执行文件。

$ make

4、执行make install命令,该命令会将编译好的程序安装到系统中。

$ make install

六、make clean命令的作用

make clean命令的作用是删除make指令生成的中间文件和可执行文件。

$ make clean

这个命令会把当前目录下make命令生成的所有文件全部删除。

七、总结

通过本文的介绍,我们对make、make install、make clean这几个命令有了更深入的了解,以及如何编写makefile文件。在Linux环境下,这些指令和文件是非常重要和必不可少的。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/242687.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:51
下一篇 2024-12-12 12:51

相关推荐

  • Python命令行pip3 install语法错误

    对于Python编程开发者而言,安装和使用第三方模块是非常频繁的操作。而pip3作为Python官方推荐的模块管理工具,具备包括搜索、安装、卸载和升级等众多功能,是大家较为常用的方…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25

发表回复

登录后才能评论