您的位置:

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环境下,这些指令和文件是非常重要和必不可少的。