我目前正在使用
c(module_name)
逐个构建我的Erlang文件。当Erlang有多个文件时,如何处理它的构建过程?
答案 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。