Erlang rebar源码学习(二)

之前说了rebar编译的核心部分(rebar_base_compile:run/4方法),现在我们就完整的看下Erlang编译流程([b]不准备细致的分析每一行代码,只罗列其中较为重要的部分[/b])

编译的入口方法是: [b] rebar_erlc_compiler:compile/2[/b]

[img]http://dl.iteye.com/upload/attachment/0079/9249/2e044f0a-a6c0-3996-9102-07d701700513.jpg[/img]

其中doterl_compile负责编译我们写的Erlang源代码文件,我们来看下它的相关代码

[img]http://dl.iteye.com/upload/attachment/0079/9251/31016c75-8561-3c15-81b2-e23c59909a2b.jpg[/img]

注意观察第208行代码,这就是我们上一节说的核心编译部分(串行编译和并行编译),其中:
[color=blue]fun(S, C) ->
internal_erl_compile(C, S, OutDir1, ErlOpts)
end[/color]
用来做为run方法的第四个参数:CompileFn,我们看下它究竟做了些什么:

[img]http://dl.iteye.com/upload/attachment/0079/9253/54db46d7-a64e-31e0-b7d2-02eac33a0364.jpg[/img]

简单来说,只有[b]当源文件最后修改时间 > 之前生成的目标文件(*.beam)[/b]才会重新编译,其余情况都会跳过编译
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值