前言
在Linux系统中我们经常会使用到make编译的命令来对一些源码包进行编译安装,下面就详细的解析一下make系列命令的用法。
命令详解
【1】make
等同于 make all
它是一个解释makefile中指令的命令工具
执行make时,默认会去(当前文件夹下),找名为Makefile的文件
根据Makefile文件来编译源代码,生成目标文件及可执行文件
在每次使用make时,都会重新生成objects,新产生的object会覆盖旧的objects
【2】make clean
清除以前的make命令编译后所产生的object文件(即后缀为“.o”的文件)及其生成的可执行文件
一般来说,在每次使用make时,都会重新生成objects,新产生的object会覆盖旧的objects
但是实际用时,经过多次编译后,必须使用make clean(直接make,以前留下来的错误不能清除干净)
【3】make install
将编译成功的可执行文件移动到make编译时填写的目录,依据生成的makefile文件
一般默认系统目录/usr/local/bin
【4】make dist
产生发布软件包.
即将可执行文件及相关文件打包成一个tar.gz格式的压缩文件,会在当前目录下生成XXX.tar.gz的文件
【5】make distcheck
相当于make dist命令的进化版
生成发布软件包并对其进行检查,以确定发布包的正确性
它会自动把压缩包文件解开,然后执行configure命令,并且执行make,来确认编译不出现错误,并会在最后提示你软件包是否正确
【6】make distclean
类似于make clean
清除以前的make命令编译后所产生的object文件(即后缀为“.o”的文件)及其生成的可执行文件,并将configure生成的文件全部删除掉
通常在使用make clean后使用,清理的更干净,避免影响再次编译
makefile概念
makefile有些类似于脚本,通过定义了一系列的规则,指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,并且它也可以执行操作系统的命令
当编译安装源码包时,使用make编译,它会默认找当前目录下的makefile文件,依据makefile中的规则,执行编译安装
makefile可以实现自动化编译,原理上来说,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率
makefile成为了一种被广泛应用于在工程方面的编译方法