Makefile编译时间优化

    最近在makefile编译时间的事情,总结点经验,其实我们的quick阶段时间已经很短十几分钟。不过当然时间越短越好,听说google的quick阶段时间只有10分钟。

     在quick时间优化中做了几个事情

     1 利用LB的编译结果,开发人员在上库之前都会在本地跑一次基本功能,这个过程叫LB。 可以利用LB编译的结果作为主干流水线的编译结果。当然这个要命中一些条件,例如版本号、svn diff、两次编译命令是否一致等等,

    2  精简quick做的事情,  这点就是要分析quick阶段做了哪些事情,只保留真正属于quick阶段的事情

    3 Makefile编译时间优化:这个是最根本的,节省1分钟就是实打实的1分钟。需要分析Makefile的编译依赖, 能够并行编译的并行编译。Makefile本身就是支持并行编译的,命令是make --jobs=  。 这一步尤其要注意单测, 一般公司开发流程都有单测。 RD洋洋洒洒写了很多个单测文件,殊不知如果没有管理好,写得越多越拖累编译时间。 

      如果你的单测的Makefile命令是这样  

$(EXE) : % : %.c

cc -o $@ $^ 

那么ok 这样是不会并行执行的, 如果单测文件非常多久很耗时了, 这时可以拆分单测分成很多了个伪目标, 然后用 make --jobs=16 target1 target2 target3 target4 ....执行,可以达到并行的效果。

all : 

make --jobs=16 target1 target2 target3 target4

targe1 : % : %.c

cc -o $@ $<

target2: % : %.c

cc -o $@ $<

targe3 : % : %.c

cc -o $@ $<

targe4 : % : %.c

cc -o $@ $<

你可能感兴趣的:(linux,经验,makefile)