之前说了rebar编译的核心部分(rebar_base_compile:run/4方法),现在我们就完整的看下Erlang编译流程(
不准备细致的分析每一行代码,只罗列其中较为重要的部分)
编译的入口方法是:
rebar_erlc_compiler:compile/2
其中doterl_compile负责编译我们写的Erlang源代码文件,我们来看下它的相关代码
注意观察第208行代码,这就是我们上一节说的核心编译部分(串行编译和并行编译),其中:
fun(S, C) ->
internal_erl_compile(C, S, OutDir1, ErlOpts)
end
用来做为run方法的第四个参数:CompileFn,我们看下它究竟做了些什么:
简单来说,只有
当源文件最后修改时间 > 之前生成的目标文件(*.beam)才会重新编译,其余情况都会跳过编译
Erlang rebar源码学习(二)
猜你喜欢
转载自diaocow.iteye.com/blog/1776671
今日推荐
周排行