chaoz的杂货铺

生命有息、学无止境、折腾不止

0%

CI大杂烩

maven

npm

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后使用,清理的更干净,避免影响再次编译

【7】makefile概念
makefile有些类似于脚本,通过定义了一系列的规则,指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,并且它也可以执行操作系统的命令

当编译安装源码包时,使用make编译,它会默认找当前目录下的makefile文件,依据makefile中的规则,执行编译安装

makefile可以实现自动化编译,原理上来说,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率

makefile成为了一种被广泛应用于在工程方面的编译方法

【7】多线程编译
因为CPU是一个影响编译速度的重要因素,所以make -j带上一个参数,可以把项目在进行中的并行编译,现在服务器上的CPU差不多都是多核多线程的,所以完全可以用make -j4,让make最多允许4个编译进程同时执行,这样可以更有效的利用CPU资源。

喜欢这篇文章?打赏一下作者吧!

欢迎关注我的其它发布渠道