构建多个Erlang Beam文件?

时间:2010-03-30 21:42:30

标签: erlang

我目前正在使用

c(module_name)

逐个构建我的Erlang文件。当Erlang有多个文件时,如何处理它的构建过程?

5 个答案:

答案 0 :(得分:25)

我首先使用Erlang make,因为它启动VM一次并编译需要重新编译的所有内容。

在源目录中尝试以下操作,它将编译那些缺少相应Beam文件的.erl文件或者自编译Beam文件以来修改.erl文件的文件:

erl -make

了解有关其他技巧的Emakefile,例如使用debug_info编译所有源文件并将.beam文件放在ebin中:

{'*',
    [{outdir,"../ebin"},
    debug_info]}.

答案 1 :(得分:14)

这会编译您当前所在目录中的所有内容:

cover:compile_directory().

答案 2 :(得分:5)

许多项目使用常规旧的make文件和erlc

erlc -h
Usage:  erlc [options] file.ext ...
Options:
-b type        type of output file (e.g. jam or beam)
-d             turn on debugging of erlc itself
-Dname         define name
-Dname=value   define name to have value
-hybrid        compile using hybrid-heap emulator
-help          shows this help text
-I path        where to search for include files
-o name        name output directory or file
-pa path       add path to the front of Erlang's code path
-pz path       add path to the end of Erlang's code path
-smp           compile using SMP emulator
-v             verbose compiler output
-Werror        make all warnings into errors
-W0            disable warnings
-Wnumber       set warning level to number
-Wall          enable all warnings
-W             enable warnings (default; same as -W1)
-E             generate listing of expanded code (Erlang compiler)
-S             generate assembly listing (Erlang compiler)
-P             generate listing of preprocessed code (Erlang compiler)
+term          pass the Erlang term unchanged to the compiler

答案 3 :(得分:2)

你可以使用'rebar',一个符合OTP标准的Basho Erlang构建工具:这将多个erlang应用程序设置为一致的目录结构,并且允许你做的不仅仅是将文件编译成.beams。 [钢筋编译]

例如,你可以      *运行测试(eUnit + feature / regression)[钢筋测试]

 - build releases [rebar rel]
 - start ci-builds 
 - specify dependencies from multiple sources in its config file
 - enable SNMPwalks through data collected by SNMP agents of various types
 - (in conjunction with xref and grapherl) generate call graphs of entire applications
 - (in conjunction with fprof and fprof_graph) generate profiling diagrams
 - run dialyzer to do static code analysis 

要查看所有钢筋命令,'rebar -c'将为您提供完整的图片。

螺纹钢是来自Basho的变体浮动,: - )

你可以获得螺纹钢here

wiki说明了一切。

答案 4 :(得分:1)

Erlang Make and Emakefiles可能是一个很好的开始方式。

例如,您可能希望查看Erlang Web的构建系统。

具体而言,您可能希望查看他们的Emakefile及其compile.erl