【编译】使用make编译源码,使用-j 参数的作用

make是进行编译的常用工具,一般只是简单使用,对其参数不甚了解,但是看到一些源码编译指南,在make 命令中加入-jn(n指2、4、8等数字),查了一下  make 的 man页,对其解释如下:

-j [jobs], --jobs[=jobs]

Specifies  the  number  of jobs (commands) to run simultaneously.  If there is more than one -j option, the last one is effective.If the -j option is given without an argument, make will not limit the number of jobs that can run simultaneously.

  此参数指定并行运行任务的数量,如果提供了多个-j,最后一个是有效的。

如果只需make -j2 ,则make允许2个编译命令同时只需,从而充分利用CPU的能力,提高编译速度,特别是在多核CPU上。

单核就不要加j参数了,GCC编译的时候默认使用一核,所以多核CPU如果想利用好才加j参数。

当然,具体多少个任务同时执行为佳,还需要根据具体的机器配置,任务数太多,反而效果不好。


在编译大型项目的时候使用makefile,所需要的时间也比较长。尤其是在做测试的时候,需要使用很多次make指令,这需要耗费大量的时间。

使用make -j命令可以缩短这部分时间。


参考


GNU MAKE的-J选项

http://www.dovov.com/gnu-make-j.html

你可能感兴趣的:(【编译】使用make编译源码,使用-j 参数的作用)