美文网首页
详解Erlang编译,利用多进程提高编译速度

详解Erlang编译,利用多进程提高编译速度

作者: 瞎子摸牛 | 来源:发表于2018-10-25 00:35 被阅读0次

    刚接触Erlang会按照书上的简单方式去编译代码,这仅适用于简单且少量工程的编译方式。

    c(hello).

    erlc hello.erl

    erl -noshell -s hello start -s init stop


    1、Emakefile 的重要参数

           一个完整的项目需要让编译自动化,使用make:all/0 仅需要一个简单的模板即可完成自动编译的需求。make:all() 会在当前目录下查找一个名为 Emakefile 的编译配置文件,来指定编译的一些配置设定。

    Emakefile模板

    上图的 [ 'src/*' , 'src/lib/*' ] 指./src和./src/lib 下所有的xx.erl会被拿出来编译。

    debug_info 是用来开启Erlang 调试器的配置信息。

    {i, " include/xx "}  在编译时,有些模块导入了include下的hrl文件,这时就会去include/xx 目录找相应的hrl文件。不写 {i, " include/xx "}也可能编译能通过,只要你在每个要导入hrl文件的模块上具体到目录就能通过编译,例如-include(xx/YYY.hrl)。不写 {i, " include/xx "}编译时,会默认去include目录找,-include(YYY.hrl) 就会去include目录下搜索。

    {d, Macro} 是非常重要的配置信息,官网解释是定义一个Macro的宏,Macro的类型必须是原子,默认值为true, 当然也可以通 {d,Macro,Value} 去设置你想要的值。开发项目时,会有个开发测试版本以及准备上线的发行版本,测试版本需要DEBUG信息以及断言等来让程序更完善,而发行的时候就不需要这些调试信息,这时就可以通过 {d, Macro} 去实现想要的结果。

     {outdir, "xx"}  编译成功的beam文件存放的目录,如果没有的话,这些beam文件就会存在当前目录。

    2、编译的流程

    未完待续···

    相关文章

      网友评论

          本文标题:详解Erlang编译,利用多进程提高编译速度

          本文链接:https://www.haomeiwen.com/subject/wkybzftx.html