В настоящее время я использую
c(module_name)
для сборки файлов Erlang один за другим. Как процесс сборки Erlang может обрабатываться, когда у них есть несколько файлов?
В настоящее время я использую
c(module_name)
для сборки файлов Erlang один за другим. Как процесс сборки Erlang может обрабатываться, когда у них есть несколько файлов?
Я начинаю использовать Erlang make, потому что он запускает виртуальную машину один раз и компилирует все, что нужно перекомпилировать.
Попробуйте выполнить следующее в исходной папке, оно скомпилирует эти .erl файлы, в которых отсутствует соответствующий файл Beam или те, где был изменен файл .erl с момента компиляции файла Beam:
erl -make
Узнайте о Emakefile для дополнительных трюков, таких как компиляция всех исходных файлов с помощью debug_info и размещение файлов .beam в ebin:
{'*',
[{outdir,"../ebin"},
debug_info]}.
Это компилирует все в каталоге, в котором вы сейчас находитесь:
cover:compile_directory().
много проектов используют обычный старый файл 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 code path
-pz path add path to the end of Erlang 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
Вы можете использовать "арматуру", инструмент сборки Erlang из Basho, совместимый с OTP: это устанавливает несколько приложений erlang в согласованную структуру каталогов и позволяет вам делать больше, чем просто компилировать файлы в .beams. [сборка арматуры]
Например, вы можете * запустить тесты (eUnit + функция/регрессия) [арматурный тест]
- 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
Чтобы увидеть все команды арматуры, "арматура -c" предоставит вам полную картину.
арматура из Башо с плавающими вариантами: -)
Вы можете получить арматуру здесь
wiki говорит все.
Erlang Make и Emakefiles, вероятно, хороший способ начать.
В качестве примера вы можете захотеть взглянуть на систему сборки Erlang Web.
В конкретном случае вы можете посмотреть их Emakefile и их compile.erl.