Компиляция

Компиляция в Эрланге происходит в байт-код — файлы с расширением .beam.

erlc hello.erl 

Размер beam-файлов после компиляции небольшой. У совсем элементарных модулей: 700-800 байт.

Команда erlc появляется в системе после установки Эрланга.

Флаги команды 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.