Компиляция в Эрланге происходит в байт-код — файлы с расширением .beam.
erlc hello.erl
Размер beam-файлов после компиляции небольшой. У совсем элементарных модулей: 700-800 байт.
Команда erlc появляется в системе после установки Эрланга.
-I <Directory> — где искать инклюды.
-o <Directory> — куда складывать скомпилированные beam-файлы (по умолчанию в текущий каталог).
-D<Name> — определяет макрос.
-D<Name>=<Value> — определяет макрос со специальным значением.
-WError — превращает все варнинги в ошибки.
-WNumber — определяет уровень предупреждения. По умолчанию 1. Чтобы выключить совсем варнинги, можно поставить -W0.
-W — то же, что -W1 (дефолтный уровень предупреждения).
-v — включает подробный вывод.
-b <Output_type> — определяет тип выдаваемого файла.
-no-server — не использовать сервер компиляции.
-server — использовать сервер компиляции.
-enable-feature <Feature> — включить определённую фичу.
-disable-feature <Feature> — отключить определённую фичу.
-list-features — выводит активные фичи.
-describe-feature <Feature> — вывести полное описание данной фичи.
-M — продуцирует правило Makefile для отслеживания заголовочных зависимостей.
-MMD — делает зависимости побочным эффектом.
-MF <Makefile> — определяет make-файл.
-MD — то же, что и -M -MF <File>.Pbeam.
-- — сигнализирует, что больше не будет опций.
+<Term> — опция передаётся компилятору без изменения. То есть можно внутри файла в заголовке написать “-compile(export_all)” (экспортировать все функции), а можно опцией: “+export_all”.
Допустим, у нас в текущем каталоге есть файл proba.erl с одноимённый модулем в нём. Его можно скомпилировать непосредственно из оболочки:
1> c(proba).
{ok,proba}
После этого модуль можно использовать — вызвать какую-нибудь функцию из него. Например: proba:some().
Того же результата можно добиться с помощью compile:file/1. Если нужны опции, тогда compile:file/2.
Copyright © 2024 Алексей Карманов