非常教程

Erlang 20参考手册

ERTS

erlc

命令

ERLC

命令摘要

编译器

描述

erlc程序提供了在Erlang系统中运行所有编译器的常用方法。根据每个输入文件的扩展名,erlc调用相应的编译器。无论使用哪种编译器,都使用相同的标志来提供参数,例如包含路径和输出目录。

"."运行编译器时,当前工作目录,不包含在代码路径中。这样可避免从当前工作目录加载Beam文件,这些文件可能与编译器或编译器使用的Erlang / OTP系统有冲突。

输出

erlc flags file1.ext file2.ext...

编译一个或多个文件。这些文件必须包含扩展名,例如.erlErlang源代码或.yrlYecc源代码。Erlc使用扩展来调用正确的编译器。

一般有用的标志

支持下列标志:

-I <Directory>

命令编译器搜索Directory.遇到-include-include_lib指令时,编译器将在以下目录中搜索头文件:

  • "."文件服务器的当前工作目录。
  • 已编译文件的基本名称。
  • 使用选项指定的目录。-I;首先搜索最后指定的目录。

-o <Directory>

编译器放置输出文件的目录。默认为当前工作目录。

-D<Name>

定义一个宏。

-D<Name>=<Value>

定义具有指定值的宏。值可以是任何Erlang项。根据平台的不同,如果shell本身解释某些字符,则可能需要引用该值。在Unix上,必须引用包含元组和列表的术语。包含空格的术语必须在所有平台上引用。

-W<Error>

将所有警告都变成错误。

-W<Number>

将警告级别设置为Number.默认为1.若要关闭警告,请使用-W0...

-W

-W1...。默认。

-v

启用详细输出。

-b <Output_type>

指定输出文件的类型。Output_type与输出文件的文件扩展名相同,但没有句号。此选项被具有单一输出格式的编译器忽略。

-smp

使用SMP仿真器进行编译。这对于编译本机代码是非常有用的,它必须使用与要运行的相同的运行时系统进行编译。

-M

生成Makefile规则以跟踪标头依赖关系。规则被发送到stdout。没有生成目标文件。

-MF <Makefile>

作为选项-M,除了写入Makefile Makefile。没有生成目标文件。

-MD

-M -MF <File>.Pbeam...

-MT <Target>

结合选项-M-MF,将发出的规则的名称更改为Target...

-MQ <Target>

作为选项-MT,除了特殊的字符make/1被引用。

-MP

结合选项-M-MF,为每个依赖项添加一个假目标。

-MG

结合选项-M-MF,将丢失的标头视为生成的文件,并将它们添加到依赖项中。

--

信号表明不会有更多的选择。其余的参数被视为文件名,即使它们以连字符开头。

+<Term>

一个以plus(+)而不是连字符开头的标志被转换成Erlang术语并且不变地传递给编译器。例如,export_allErlang编译器的选项可以如下指定:

erlc +export_all file.erl

根据平台的不同,如果shell本身解释某些字符,则可能需要引用该值。在Unix上,必须引用包含元组和列表的术语。包含空格的术语必须在所有平台上引用。

特殊标志

下列标志在特殊情况下非常有用,例如重建OTP系统:

-pa <Directory>

附加Directory到被调用的Erlang模拟器的代码路径前面。这可以用于调用另一个编译器,而不是默认编译器。

-pz <Directory>

附加Directory被调用的Erlang模拟器中的代码路径。

支持的编译器

支持下列编译器:

.erl

Erlang源代码。它生成一个.beam档案。

选项-P-E-S等同于+'P'+'E'+'S',除了没有必要包含单引号来保护它们不受shell限制。

支持的选项:-I-o-D-v-W-b

.S

Erlang汇编程序源代码。它生成一个.beam档案。

支持的选项:与.erl...

.core

Erlang核心源代码。它生成一个.beam档案。

支持的选项:与.erl...

.yrl

YECC源代码。它生成一个.erl档案。

使用-I带有文件名称的选项将该文件用作自定义序言文件(选项includefile)。

支持的选项:-o-v-I-W

.mib

用于SNMP的MIB。它生成一个.bin档案。

支持的选项:-I-o-W

.bin

为SNMP编译的MIB。它生成一个.hrl档案。

支持的选项:-o-v

.rel

脚本文件。它生成一个引导文件。

使用选项-I命名要搜索应用程序文件的目录(相当于path选项列表中的systools:make_script/2)。

支持的备选方案:-o...

.asn1

ASN1文件。它从文件创建一个.erl.hrl和文件。还编译使用Erlang编译器,除非指定了选项。.asn1db.asn1.erl+noobj

支持的选项:-I-o-b-W

.idl

IC文件。它运行IDL编译器。

支持的选项:-I-o

环境变量

ERLC_EMULATOR用于启动模拟器的命令。默认erlerlc程序本身在同一目录中,或者如果它不存在,erl则在环境变量中指定的任何目录中PATH

另见

erl(1)compile(3)yecc(3)snmp(3)

Erlang 20

Erlang 是一种通用的面向并发的编程语言,可应付大规模开发活动的程序设计语言和运行环境。

主页 https://www.erlang.org/
源码 https://github.com/erlang/otp
版本 20
发布版本 20.1