美文网首页
详解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