Компиляция в Эрланге происходит в байт-код — файлы с расширением .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.
© Алексей Карманов, 2024.