一、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会按照以下顺序执行:
- make会检查所有的依赖文件是否存在;
- 如果依赖文件中有文件被修改,那么会重新生成该文件;
- 生成所有目标文件,包括可执行的文件、中间文件等;
- 执行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环境下,这些指令和文件是非常重要和必不可少的。