Создание нескольких файлов Erlang Beam? - PullRequest
20 голосов
/ 31 марта 2010

Я сейчас использую

c(module_name)

для создания моих файлов Erlang один за другим. Как можно обработать процесс сборки для Erlang, когда у них есть несколько файлов?

Ответы [ 5 ]

25 голосов
/ 31 марта 2010

Я начинаю с использования Erlang make , потому что он запускает виртуальную машину один раз и компилирует все, что нужно перекомпилировать.

Попробуйте следующее в вашей исходной директории, он скомпилирует те файлы .erl, в которых отсутствует соответствующий файл Beam, или файлы, в которых файл .erl был изменен с момента компиляции файла Beam:

erl -make

Узнайте о Emakefile для дополнительных приемов, таких как компиляция всех исходных файлов с помощью debug_info и размещение файлов .beam в ebin:

{'*',
    [{outdir,"../ebin"},
    debug_info]}.
15 голосов
/ 08 марта 2011

Это скомпилирует все в каталоге, в котором вы сейчас находитесь:

cover:compile_directory().
5 голосов
/ 31 марта 2010

многие проекты используют обычный старый файл 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
2 голосов
/ 02 мая 2012

Вы можете использовать 'rebar', инструмент сборки 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 

Чтобы увидеть все команды арматуры, 'rebar -c' даст вам полную картину.

арматура от Basho с вариантами, плавающими вокруг,: -)

Вы можете получить арматуру здесь

вики говорит обо всем.

1 голос
/ 31 марта 2010

Erlang Make и Emakefiles , вероятно, хороший способ начать.

Например, вы можете взглянуть на систему сборки Erlang Web .

В частности, вы можете посмотреть их Emakefile и их compile.erl .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...